0

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

任何帮助将不胜感激。

4

1 回答 1

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 指令才应该匹配。

于 2013-05-10T19:34:28.833 回答