以下代码运行良好:
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]
您不能在正则表达式中使用变量。你可以通过使用RegEx反向引用来解决这个问题,比如:
RewriteCond %{HTTP_REFERER} ^https?://([^/]+)/ [NC]
RewriteCond %1#%{HTTP_HOST} !^(.+)#1$
RewriteRule .(jpe?g|gif|bmp|png|swf|css)$ - [F]
(注意,#
只是用作边界。它可以是域名中没有使用的任何字符。)
非常旧的一个,但这里是你的答案:
RewriteCond %{HTTP_HOST}@@%{HTTP_REFERER} !^([^@]*)@@https?://1/.*