我正在使用以下.htaccess代码禁用来自一个特定域的热链接:
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(www.)?bad-site.com [NC]
Rewriterule ^(.*)$ http://www.mysite.com/bad.jpg [r=301,nc]
如果我想禁用更多域名该怎么办?我怎么做?是否可以在不重复每个域的配置的情况下完成它?
答案 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]