mod-rewrite条件在IIS6中无法正常工作

时间:2013-05-10 18:30:31

标签: regex apache mod-rewrite iis-6

Helicon为IIS6编码的mod-rewrite模块的其他问题。重定向IP地址的第一个条件按预期工作。但是,我还添加了第二个重写条件似乎无法正常工作。这是我的.htaccess文件(我知道mod-rewrite模块通常包含在Apache服务器中,但对于IIS6,一个名为Helicon的公司编写了自己的模块,模仿Apache所做的事情)。我已经要求供应商发表评论,他们不知道为什么它不起作用,应该是。这是我的.htaccess文件(请注意,同一文件中有两个RewriteCond和RewriteRules - ip过滤器可以工作,但代理上的过滤器不起作用):

IP,REMOTE_ADDR条件工作

RewriteCond %{REMOTE_ADDR} (\b89\.242\.(?!36)\d{1,3}\.\d{1,3}|\b88\.78\.30\.\d{1,3}|etc...)
RewriteRule (.*) http\://www.aspdnsf.com/CASP_BotCatch.aspx\?htaccess=1&agentblock=0&ipblock=1 [I,RP]

代理,用户代理:条件不起作用

RewriteCond User-Agent: .*Java.*
RewriteRule (.*) http\://www.aspdnsf.com/CASP_BotCatch.aspx\?htaccess=1&agentblock=1&ipblock=0 [I,RP]

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您尝试检查浏览器发送的用户代理标头的值,请尝试将第二组规则更改为以下内容:

RewriteCond %{HTTP_USER_AGENT} Java
RewriteRule .* http\://www.aspdnsf.com/CASP_BotCatch.aspx\?htaccess=1&agentblock=1&ipblock=0 [I,RP]

只有字符串“Java”出现在HTTP_USER_AGENT服务器变量的值中时,修改后的RewriteCond指令才应匹配。