MVC~ /不解析到虚拟目录中的应用程序根目录

时间:2013-06-02 18:32:43

标签: c# asp.net-mvc asp.net-mvc-4 iis-7

我在同一台服务器上托管了多个网站,其结构如下:

http://primary-domain.com/hostedsites/MVCWebApplication1/ = http://MVCWebApplication1.com/

http://primary-domain.com/hostedsites/MVCWebApplication2/ = http://MVCWebApplication2.com/

...

问题是,在托管站点中进行的所有~/引用(即MVCWebApplication1,MVCWebApplication2等)都解析为

http://MVCWebApplication1.com/hostedsites/MVCWebApplication1/

而不是

http://MVCWebApplication1.com

请注意:

我已经拥有以下我的web.config:

<rule name="Remove Virtual Directory">
  <match url=".*" />
  <action type="Rewrite" url="{R:0}" />
</rule>

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我最终做的是使用一堆工作:

web.config

<rewrite>
  <rules>
    <rule name="Remove Virtual Directory">
      <match url=".*" />
      <action type="Rewrite" url="{R:0}" />
    </rule>
  </rules>
</rewrite>

而不是像这样创建链接:

<a href="~/Help">Help</a>

这样做:

@Html.ActionLink("Help", "Help") // This seems to create clean urls

答案 1 :(得分:0)

您只需将虚拟目录转换为IIS中的应用程序。