2012-04-05 116 views
0

我负责为IIS 7.5中的.Net MVC站点创建一些重写规则。我安装了Url Rewrite Module,并且配置了一些非常简单的规则,但没有成功。URL重写模块问题/问题

所以我的第一个问题是,IIS以何种顺序处理传入的url? 它是否包含URL - > URL重写 - >重写Url - > .Net MVC路由管理器获取更新的URL?

如果没有,那么它按照哪个顺序处理它,以及如何获取URL重写来首先处理URL?

还有就是,上面写着一个复选框“登录URL重写”,这是否登录到IIS日志,或者这是别的东西?

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

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

任何帮助是极大的赞赏。

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

**更新:2012年4月6日** 我仍然没有跟踪到这个问题,但我不知道我的web.config是否为我的MVC应用程序导致任何问题。它似乎在web.config这些声明可能会造成这个?:

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

+0

我不知道所有的答案,所以只是评论。但是,是的,该复选框的确将“东西”放入IIS日志中。 – ianbailey 2012-04-05 10:02:59

+0

谢谢,有些澄清很好。 – 2012-04-05 21:18:23

回答

0

2012年4月11日更新

URL Rewrite Module实际安装正确。做了一些非常基本的测试,他们工作。发现我的规则正则表达式不正确(有一个额外的斜线),我需要做一个IISReset。如果有其他人发现这篇文章,请确保您的重定向规则是正确的,并做一个非常简单的基本测试来验证其工作。

0

雷,

你说得对重写处理步骤。在将请求传递给相应的asp.net应用程序之前,IIS将首先重写URL。

注意使用IIS重写,但路由,因为它们可以相互争夺。 特别是如果IIS以您没有预料到的方式重写URL。对我来说,这样的情况下证明杰夫阿特伍德是正确的,他在博客:

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

通常我会在通过IIS重写使用路由方面发生错误,并且只会使用IIS重写来强制执行一般规则,例如建立规范域(www vs no www),强制小写URL或强制执行尾随斜杠上的URL。

你的问题似乎比这更具体。在使用霰弹枪来解决问题(比如URL重写)之前,我会耗尽所有选项。