2011-05-11 30 views
0

1)我需要验证连接是由我的同一个网站还是其他人引用。 2),我不能简单地键入HTTP_HOST手动因为.htaccess文件旨在通过颠覆进行处理并跨越不同HTTP_HOST不同的开发环境共同的价值观RewriteCond:将HTTP_REFERER与HTTP_HOST匹配的任何解决方法?

因此我们的目标是要找到一个解决办法,使这项工作条件透明无论环境是什么,并保持htaccess容易处理svn无需手动修复。

谢谢!

+0

$ _SERVER [HTTP_REFERER]然后使用正则表达式检查域名?希望通过这种方式,您可以轻松地知道请求的来源 – 2011-05-11 16:56:11

回答

1

与Apache 2,你可以这样做:

RewriteCond %{HTTP_REFERER} ^$ [OR] 
RewriteCond %{HTTP_REFERER} ^[^:/?#]+://([^/?#]+) # get authority 
RewriteCond %1 ^(?:(?:[A-Za-z0-9-._~!$&'()*+,;=:]|%[0-9A-Fa-f]{2})*@)?((?:[A-Za-z0-9-._~!$&'()*+,;=]|%[0-9A-Fa-f]{2})*)(?::\d+)?$ # get host name 
RewriteCond %1/%{HTTP_HOST} !^([^/]+)/\1$ # compare to HTTP_HOST 
RewriteRule^… 

注意HTTP_HOST也可以为空以预HTTP/1.1请求的情况下。

相关问题