有点晚了,但我刚刚从 Isapi Rewrite 版本 2 升级到了版本 3。
我在使用以下样式的规则时遇到问题:
RewriteRule ^/seo-friendly/(\?(.*))? /test/index.cfm?page=home&$2
在这里,我希望将任何额外的查询字符串参数传递给重写的 URL。
这在 IR2 下运行良好,但无法在 IR3 中传递额外的参数。我有每个版本的正则表达式测试器 .exe 实用程序,所以我尝试了这些。
如果我输入/seo-friendly/?hello=world,IR2 的正则表达式测试器会显示$1: ?hello=world和$2: hello=world 这是完美的。
但是 IR3 说$0: /seo-friendly/和$1和$2是空白的。
看起来我无法访问查询字符串变量。
我发现文档中提到了这个标志:
O(正则化)
在处理之前规范化字符串。规范化包括删除 URL 编码、非法字符等。此外,URI 的 IIS 规范化完全删除查询字符串。因此,如果需要查询字符串,则不应使用规范化
但我没有设置这个标志违反我的规则。我可以设置一个全局规则来停止这种(明显的)规范化吗?