Эгея. Как починить комментарии, если у вас Nginx
Если вы подняли блог на Nginx по документации Эгеи, то вероятнее всего у вас не работает авторизация через кнопки соц.сетей в комментариях. Даже если визуально всё работает, попробуйте авторизоваться там сами. Это критично, если у вас в настройках выбрано «комментировать могут только авторизовавшиеся пользователи», тогда вам даже не смогут написать про эту проблему.
Решение
- Обновляем одну строку в файле Nginx-конфига, соответствующего блогу на Эгее.
location / {
log_not_found off;
# Было:
# try_files $uri $uri/ /index.php?go=$uri;
# Стало:
try_files $uri $uri/ /index.php?go=$uri&$query_string;
}
- Перезагружаем веб-сервер.
$ nginx -s reload
Причина
Эгея обрабатывает все запросы путём пробрасывания через фронт-контроллер index.php. При этом первоначальный URI передаётся как GET-параметр «?go=».
Исходный запрос Обработанный запрос /tags/ /index.php?go=/tags/ /all/how-web-works/ /index.php?go=all/how-web-works/ /sign-in-done/vk/?data={«user»: ...} /index.php?go=sign-in-done/vk/
В последнем случае исходный запрос уже содержит GET-параметры, которые до php не дойдут.
Подозреваю, что из-за этого же бывали баги с загрузкой и удалением уже прикреплённых в постах картинок.
ps.: большое спасибо Евгению Степанищеву, что обнаружил этот баг и не поленился написать мне на почту.