我在IIS7中遇到了Url Rewrite模块的问题。我已经阅读了几篇关于此类问题的帖子,我似乎无法弄明白。
以下是规则:
<rule name="Imported Rule 11" stopProcessing="true">
<match url="/s\/([\w\%20\s]+)\/default\.aspx" />
<action type="Rewrite" url="\/landingpage.aspx\?mc={R:1}"
logRewrittenUrl="true" />
</rule>
我是从以前的ISAPI ini过滤器导入的,如下所示:
RewriteRule ^\/s\/([\w\-\_\%20\s]+)\/default\.aspx \/landingpage.aspx\?mc=$1 [L,I]
我不得不调整正则表达式以使其与内置测试器一起使用,但它与网址匹配
/s/RETQ211CA/default.aspx
根据日志,请求将通过:
2012-10-18 15:41:54 ::1 GET /s/RETQ211CA/default.aspx - 80 - ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E) 404 0 0 1468
这发生在本地或通过互联网发生。
有人可以告诉我这里到底出错了什么吗?
谢谢!
答案 0 :(得分:1)
以下规则可以解决问题:
s\/([\w\%20\s]+)\/default\.aspx
您可以使用^开始此规则,如果您愿意,可以使用$终止。
令人困惑的是,网址重写假设你在根目录中。