Разрешить / запретить горячую ссылку на изображение с помощью .htaccess
-
12-09-2019 - |
Вопрос
Итак, у меня есть это в моем файле site .htaccess, чтобы предотвратить горячие ссылки на изображения, JS и CSS из всех других доменов.
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]
Вопрос:Как бы мне выборочно разрешить одному или двум доменам горячую ссылку?
Решение
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.
Если бы это было так, что вы пытались сделать обратное (занести в черный список набор доменов из горячих ссылок), вы бы сделали что-то вроде
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]
Другие советы
Просто добавьте еще одно условие перед RewriteRule для каждого домена, который вы хотите разрешить.
RewriteCond %{HTTP_REFERER} !friendlysite\.com [NC]
(предположительно, вам все равно, отправляется ли запрос через http или https или что-то еще, поэтому вы можете оставить это, чтобы сделать его более общим)