无法使用IIS7 Url重写重写URL

时间:2012-10-18 15:49:29

标签: asp.net iis-7 url-rewriting

我在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

这发生在本地或通过互联网发生。

有人可以告诉我这里到底出错了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

以下规则可以解决问题:

s\/([\w\%20\s]+)\/default\.aspx

您可以使用^开始此规则,如果您愿意,可以使用$终止。

令人困惑的是,网址重写假设你在根目录中。