Ошибка 404 возможно по рефереру

Сервер Ubuntu Apache2+Nginx.

При переходе по ссылке на внутреннюю страницу сайта с другого сайта выдается 404 ошибка хотя страница существует. Однако когда тот же самый адрес внутряка вбиваешь в адресную строку все ок.

Всевозможные защиты по referer отключил, не помогло. Проблемный сайт на Wordpress, там никаких ошибок не вижу. Включение-отключение кэша не дает результатов. Отключение кэша в Cloudflare тоже, как и сброс всевозможных параметров защиты.

Внутренняя перелинковка работает корректно, проблема возникает при попытке пройти на сайт по ссылке с другого сайта.

В логах просто ошибка file not found

Не понимаю где искать проблему.


Ответы (1 шт):

Автор решения: Dmitry Dmitriev

Проблема решена! Некоторое время назад я ставил защиту от 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 ошибка.

→ Ссылка