【问题标题】:URL Rewrite Module Questions / ProblemsURL 重写模块问题/问题
【发布时间】:2012-04-18 20:53:52
【问题描述】:

我的任务是在 IIS 7.5 中为 .Net MVC 站点创建一些重写规则。我安装了 Url Rewrite Module,并配置了一些非常简单的规则,但没有成功。

所以我的第一个问题是,IIS 以什么顺序处理传入的 url? 是 Incomming URL --> URL Rewrite --> rewrite the Url --> .Net MVC Routing Manager 获取更新的 URL?

如果不是,那么它按什么顺序处理它,我怎样才能让 URL Rewrite 先处理 URL?

有一个复选框,上面写着“记录重写的 URL”,这个记录到 IIS 日志还是其他什么?

这是我创建的重写入站规则:

Pattern: (.*)/fin/(.*)
Rewrite URL: {R:1}/fi/{R:2}

非常感谢任何帮助。

更新:2012 年 4 月 5 日 我仍然无法让它在系统上运行。我尝试通过 Localhost 来消除代理和负载平衡,但它仍然无法正常工作。我将它安装到另一台机器上,它就像一个冠军。任何建议将不胜感激。

** 更新:2012 年 4 月 6 日** 我仍然没有找到问题,但我想知道我的 MVC 应用程序的 web.config 是否导致任何问题。看起来 web.config 中的这些语句可能会导致这种情况吗?:

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule" />
</modules>

【问题讨论】:

  • 我不知道所有的答案,所以只是评论。但是,是的,该复选框确实将“东西”放入 IIS 日志中。
  • 谢谢,澄清一下就好了。

标签: url iis module rewrite


【解决方案1】:

雷,

关于重写过程步骤,您是对的。 IIS 将首先重写 URL,然后再将请求传递给相应的 asp.net 应用程序。

注意使用 IIS 重写和路由,因为它们可以相互竞争。 特别是如果 IIS 以您未曾预料到的方式重写 URL。对我来说,像这样的案例证明 Jeff Atwood 写博客时是对的:

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems..

通常我会在通过 IIS 重写使用路由方面犯错,并且只会使用 IIS 重写来强制执行一般规则,例如建立规范域(www 与无 www)、强制使用小写 url 或强制使用尾部斜杠在 URL 上。

您的问题似乎比这更具体。在对问题采取措施(如 URL 重写)之前,我会用尽所有路由选项。

【讨论】:

    【解决方案2】:

    2012 年 4 月 11 日更新

    URL 重写模块实际上已正确安装。做了一些非常基本的测试,他们奏效了。发现我的规则的正则表达式不正确(有一个额外的斜杠),我需要执行 IISReset。如果其他人发现此帖子,请确保您的重定向规则正确,并进行非常简单的基本测试以验证其是否正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-31
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多