Разрешить / запретить хотлинкинг изображений с помощью .htaccess - PullRequest
12 голосов
/ 07 августа 2009

Итак, у меня есть файл .htaccess на моем сайте, чтобы предотвратить хотлинкинг изображений, JS и CSS со всех других доменов.

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain\.com [NC]
RewriteRule \.(gif|jpe?g|js|css)$ - [F,NC,L]

Вопрос: Как я могу выборочно разрешить один или два домена для горячей ссылки?

Ответы [ 2 ]

22 голосов
/ 07 августа 2009
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]
3 голосов
/ 07 августа 2009

Просто добавьте еще одно условие перед RewriteRule для каждого домена, который вы хотите разрешить.

RewriteCond %{HTTP_REFERER} !friendlysite\.com [NC]  

(вероятно, вам все равно, будет ли запрос через http или https или что-то еще, так что вы можете пропустить его, чтобы сделать его более общим)

...