0

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

我不得不稍微调整正则表达式以使其与内置测试器一起使用,但它与 url 匹配

/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

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

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

谢谢!

4

1 回答 1

1

以下规则可以解决问题:

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

如果您愿意,您可以使用 ^ 开始此规则并以 $ 结束。

令人困惑的是 url rewrite 假设您在根目录中。

于 2012-10-18T16:12:57.883 回答