【发布时间】:2013-10-04 14:40:38
【问题描述】:
我的托管计划使用的 Web 应用程序数量有限,但子域不受限制。我计划通过使用 IIS 重写来利用这些子域,如下所示:
<rule name="Home Rewrite" enabled="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^home\.mydomain\.com$" />
</conditions>
<action type="Rewrite" url="home/{R:1}" />
</rule>
这在大多数情况下都可以正常工作,我可以转到http://home.mydomain.com,它会按预期将我带到本质上是http://www.mydomain.com/home。
我正在使用 Web Deploy 发布,我相信主机是 IIS7。
问题是我想利用@Html.ActionLink,但是在查看源代码时,这解决了包含虚拟目录。
所以我最终得到的是一个在我转到原始地址时可以工作的网站:
http://www.mydomain.com/home/application
还有一个在重定向地址加载但无法正常运行的网站:
http://home.mydomain.com/application
页面源中生成的 URL 指向相对于原始地址:
/home/application/Account/Login
这适用于指向其他页面/路由、捆绑包的链接,基本上是使用~/ 或@Html.ActionLink 的任何地方。
我该如何解决这个问题?我希望至少可以继续使用@Html.ActionLink,我想我可以不用波浪号。
【问题讨论】:
标签: asp.net asp.net-mvc iis web-config