禁用特定域的热链接

时间:2011-08-19 18:38:14

标签: apache .htaccess

我正在使用以下.htaccess代码禁用来自一个特定域的热链接:

 RewriteEngine on
 RewriteCond %{HTTP_REFERER} ^http(s)?://(www.)?bad-site.com [NC]
 Rewriterule ^(.*)$ http://www.mysite.com/bad.jpg [r=301,nc] 

如果我想禁用更多域名该怎么办?我怎么做?是否可以在不重复每个域的配置的情况下完成它?

1 个答案:

答案 0 :(得分:3)

您需要为每个域都使用RewriteCond并使用OR,如下所示:

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?bad-site\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?bad-site-1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?bad-site-2\.com [NC]
Rewriterule ^(.*)$ http://www.mysite.com/bad.jpg [r=307,NC] 

或者你使用|像这样的正则表达式:

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?((bad-site\.com)|(bad-site-1\.com)|(bad-site-2\.com)) [NC]
Rewriterule ^(.*)$ http://www.mysite.com/bad.jpg [r=307,NC]