Здравствуйте.
Подскажите, пожалуйста, как реализовать для Nginx на сайте под управлением WP защиту от хотлинка, когда сторонние сайты подгружают изображения по прямым ссылкам.
Мне не совсем понятно, каким образом можно использовать ссылки на файлы, которые физически отсутствуют (ведь изображений может быть сотни), с последующим перенаправлением с таких файлов на существующие при помощи .htaccess.
Ответы (4)
Сам занимаюсь сейчас данным вопросом, поэтому можем поискать решение вместе.
Насколько я понимаю, вы уже попробовали данный плагин и эффекта он не дал, разумеется:
https://ru.wordpress.org/plugins/wordpress-automatic-image-hotlink-protection/
В моем случае в разделе "Настройки" в админке я точно помню что не встретил функционала плагина, а далее вопрос не разбирал, другие дела тогда были.
В своих документах нашел ряд правил перенаправлений схожего вида. Посмотрите, может помочь в решении насущной проблемы, но учитывайте что это лишь пример, не более:
'''RewriteRule ^(.*)(png|jpg|gif)$ $1$2x'''
'''AddType image/png .pngx'''
'''AddType image/jpg .jpgx'''
'''AddType image/gif .gifx'''
Хотя в свое время именно так решал проблему, правда на другом хостинге дело было.
Если нужно будет объяснить логику - смогу подсказать, но думаю что не требуется.
Мне видится два варианта решения проблемы:
1. Обращение к несуществующей папке, чтобы потом средствами mod_rewrite шло обращение к существующей в которой располагаются изображения.
2. Переименовать все размещаемые изображения из png в pngx, из jpg в jpgx и т.д, а после сформировать правило типа приведенного выше, которое бы в случае поступления обращения к отсутствующему файлу, запрашивало файл cредствами веб-сервера Apache с расширением pngx, например. Эти расширения наверняка не описаны в конфигах nginx, а значит не будут отдаваться этим веб-сервером как статические.
Кстати, действительно ли данная задача стоит внесения столь серьезных изменений?
Скопировать контент (изображения, например) с помощью современных приложений не видится мне неразрешимой задачей.