【问题标题】:Unable to Rewrite URL with IIS7 Url Rewrite无法使用 IIS7 Url Rewrite 重写 URL
【发布时间】:2012-10-18 15:49:29
【问题描述】:

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

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

谁能告诉我我到底做错了什么?

谢谢!

【问题讨论】:

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


    【解决方案1】:

    以下规则可以解决问题:

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

    如果你愿意,你可以用 ^ 开始这条规则,用 $ 结束。

    令人困惑的是,url 重写假定您在根目录中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      相关资源
      最近更新 更多