Разрешить/запретить обращение к изображениям с помощью .htaccess
Итак, у меня есть это в файле моего файла .htaccess, чтобы предотвратить хотлинкинг изображений, JS и CSS со всех других доменов.
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]
Вопрос: Как бы выборочно разрешить хост-ссылку одному или двум доменам?
Ответы
Ответ 1
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?otherdomain\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]
Будет работать, как сказано.
"Refererr не является ничем, а referer не соответствует mydomain, а referer не соответствует otherdomain.
Если бы вы пытались сделать обратное (черный список - набор доменов из hotlinking), вы бы сделали что-то вроде
RewriteCond %{HTTP_REFERER} ^http://(www\.)?baddomain1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?baddomain2\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]
Ответ 2
Просто добавьте другое условие перед RewriteRule для каждого домена, который вы хотите разрешить.
RewriteCond %{HTTP_REFERER} !friendlysite\.com [NC]
(по-видимому, вам все равно, если запрос выполняется через http или https или что-то еще, поэтому вы можете оставить это, чтобы сделать его более общим)
Ответ 3
Я знаю, что этой теме 5 лет, но у меня проблема. Я пытаюсь добавить домен типа "разрешить", принадлежащий другу, в строки предупреждения о горячей ссылке в моем файле htaccess, но он просто не работает.
Одна из строк в этом разделе моего файла htaccess (имена доменов изменены)
RewriteCond% {HTTP_REFERER}! ^http://www.mysitename.com/. * $ [NC]
и я попытался добавить строку
RewriteCond% {HTTP_REFERER}! ^http://www.allowthisone.com/. * $ [NC]
но когда я проверяю ссылку .jpg на его веб-сайте, выдается сообщение об ошибке 500. Изображение определенно есть.
На его веб-сайте, когда я щелкаю правой кнопкой мыши и копирую ссылку jpg с изображением (..mysitename.com) прямо в мой браузер, она работает, но не тогда, когда я щелкаю ее на его веб-сайте.
Может кто-нибудь сказать мне, что я делаю не так?