IIS 7 URL重写配置问题还是MVC路由?

时间:2012-10-12 08:02:21

标签: asp.net-mvc url-rewriting asp.net-mvc-routing

我在Gearhost.com上有一个帐户,当涉及到设置子域时,您需要进入并使用IIS远程管理员配置URL重写条目。

目录文件夹结构遵循以下模式:

\mastersite
\mastersite\subdomain1

有关如何操作的Gearhost KB文章可以在这里找到: https://support.gearhost.com/KB/a851/setting-a-subdomains-content-location-using-url-rewrite.aspx?KBSearchID=0

这很好用,但我遇到了一个场景,它显示了使用master.com/sub-domain路径访问子域的能力。

subdomain1.site.com (works)
www.site.com/subdomain1 (displays site also --which I don't want)

我不知道知识库文章是否是在IIS中配置子域的正确方法,或者我是否需要在Microsoft MVC 3应用程序中管理路由。

假设这是设置/配置子域的正确方法。有没有办法限制第二个选项的路径,所以它返回为未找到的页面或禁止访问或此类效果?

我正在开发一个Microsoft MVC应用程序,如果我使用“Request.Url”调用,它实际上会返回第二个选项的完整路径,即使我坐在看起来像是一个完美的路径域名主页。

所以我不知道这是否需要以不同的方式处理,如果需要更改URL Rewrite条目,或者解决方案可能是什么。

寻找可能对这些主题有更多了解的任何工程师的反馈。

感谢。

1 个答案:

答案 0 :(得分:1)

我遇到了article,这解决了我原来的求助请求。

它涉及在IIS中创建传出规则,以重命名路径。该规则查找有问题的路径,然后重写它。

根据article我使用的传出规则#2。

Pre-Condition: None
Matching Scope: Server Variable
Variable Name: RESPONSE_LOCATION
Variable Value: Matches the Pattern
Using: Regular Expressions
Pattern: ^(?:MyMasterSiteSubFolder/MySubDomain|(.*//[_a-zA-Z0-9-\.]*)?/MyMasterSiteSubFolder/MySubDomain)(.*)
[x] Ignore case
Action: Rewrite
Action Properties Value: {R:1}{R:2}
[x] Replace existing server variable value
[ ] Stop processing of subsequent rules