Ошибка 404 возможно по рефереру
Сервер Ubuntu Apache2+Nginx.
При переходе по ссылке на внутреннюю страницу сайта с другого сайта выдается 404 ошибка хотя страница существует. Однако когда тот же самый адрес внутряка вбиваешь в адресную строку все ок.
Всевозможные защиты по referer отключил, не помогло. Проблемный сайт на Wordpress, там никаких ошибок не вижу. Включение-отключение кэша не дает результатов. Отключение кэша в Cloudflare тоже, как и сброс всевозможных параметров защиты.
Внутренняя перелинковка работает корректно, проблема возникает при попытке пройти на сайт по ссылке с другого сайта.
В логах просто ошибка file not found
Не понимаю где искать проблему.
Ответы (1 шт):
Проблема решена! Некоторое время назад я ставил защиту от hotlink. Поскольку запросы на хосте обрабатывал не Apache2, а Nginx директива в .htaccess для защиты от hotlink не работала как надо.
Тогда я внес изменения в nginx.conf проблемного хоста:
valid_referers none blocked server_names ~(yahoo|duckduckgo|yandex|google|yahoo|bing|facebook|fbcdn|twitter);
if ($invalid_referer) {rewrite (.*)\.(jpg|jpeg|png|gif|mp4)$ https://site.com/x.png;
блокируя редисок по рефереру на уровне nginx. После удаления этой директивы ссылки на внутряки перестали отдаваться 404-ми ошибками.
Остается вопрос как сделать защиту hotlink и почему все-таки отдавалась 404 ошибка.