1)我需要验证连接是由我的同一站点还是其他人引用。 2)我不能简单地手动输入HTTP_HOST,因为.htaccess文件应由subversion处理并在具有不同HTTP_HOST值的不同开发环境中共享
因此,我们的目标是找到一种解决方法,使这个条件无论环境如何都能透明地工作,并且不需要手动修复就可以通过svn轻松处理htaccess。
谢谢!
答案 0 :(得分: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 / 1.1请求, HTTP_HOST 也可能为空。