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

本文关键字:根目录 应用程序 虚拟 不能 MVC | 更新日期: 2023-09-27 18:16:42

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

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>

我该如何解决这个问题?

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

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

In 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

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