1

以下代码工作正常:

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]
4

2 回答 2

1

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

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

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

于 2012-09-03T11:58:55.860 回答
1

很老的一个,但这是你的答案:

RewriteCond %{HTTP_HOST}@@%{HTTP_REFERER} !^([^@]*)@@https?://\1/.*
于 2015-04-24T19:21:57.453 回答