如何通用.htaccess来防止热链接

时间:2012-09-03 05:30:34

标签: linux apache .htaccess mod-rewrite hotlinking

以下代码可以正常使用:

RewriteCond %{HTTP_REFERER} !^http://superwebx.com/.*$ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png|swf|css)$ - [F]

但是我想制作一个通用脚本为我管理的几个网站提供服务,但未能尝试获取

RewriteCond %{HTTP_REFERER} !^http://%{HTTP_HOST}/.*$ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png|swf|css)$ - [F]

2 个答案:

答案 0 :(得分:0)

你不能在正则表达式中使用变量。您可以使用如下的RegEx反向引用来解决此问题:

RewriteCond %{HTTP_REFERER} ^https?://([^/]+)/ [NC]
RewriteCond %1#%{HTTP_HOST} !^(.+)#\1$
RewriteRule \.(jpe?g|gif|bmp|png|swf|css)$ - [F]

(注意#仅用作边界。它可以是域名中未使用的任何字符。)

答案 1 :(得分:0)

很老,但这是你的答案:

RewriteCond %{HTTP_HOST}@@%{HTTP_REFERER} !^([^@]*)@@https?://\1/.*