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