Как предотвратить хотлинкинг динамически (без жесткого кодирования домена хоста), используя .htaccess HTTP_HOST и HTTP_REFERER - PullRequest
2 голосов
/ 25 марта 2012

Я хочу знать, как предотвратить хотлинки к ресурсам на моем сайте без жесткого кодирования доменного имени .

Мне это нужно, поскольку программное обеспечение будет использоваться для нескольких доменов и может использоваться как установка. Было бы невозможно поручить каждому пользователю вносить изменения в файл htaccess для входа в свой текущий домен.

Я встречал много кода, похожего на этот. но здесь, как вы видите, вы должны ввести доменное имя.

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !www.example.com [NC]
RewriteRule \.(gif|jpg|png)$ - [F,NC]

Я также натолкнулся на приведенный ниже фрагмент с этой apache страницы , которая, похоже, решает проблему. Но по какой-то причине не могу заставить его работать.

RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"
RewriteRule ^/images - [F]

Примечание. Я настроил локальное доменное имя для выполнения тестов. поэтому я захожу на свой сайт как mysite.local вместо localhost / mysite

Есть ли способ, которым я могу предотвратить хотлинкинг без жесткого кодирования доменного имени в htaccess?

1 Ответ

0 голосов
/ 25 марта 2012

Глядя на документацию 2.2, я думаю, что на самом деле все намного проще, чем в 2.4. Но проверить, чтобы быть уверенным:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !%{HTTP_HOST} [NC]
RewriteRule ^/images - [F]
...