我的托管计划的Web应用程序数量有限,但无限制的子域名。我打算使用IIS重写,像下面利用这些子域名:IIS URL重写和MVC
<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部署,我相信主机是IIS7。
问题是我想利用@Html.ActionLink
,但是在查看源代码时,这解决了包含虚拟目录的问题。
那么我最终是当我去原地址工作的网站:
http://www.mydomain.com/home/application
而且一个网站,加载,但不能正常运行,在重定向的地址:
http://home.mydomain.com/application
与页源生成的URL指向相对于原始地址:
/home/application/Account/Login
这适用于链接到其他网页/路线,捆绑,基本上任何地方~/
或@Html.ActionLink
使用。
我该如何解决这个问题?我希望至少保持@Html.ActionLink
的使用,我想我可以没有痣。
我正在寻找一个更通用的解决方案,从而使该网站将发挥作用正确无论我查看哪个网址: 'http:// home.mydomain.com/application' 和 'http:// www.mydomain.com/home/application' 应该都可以工作。 – Eraph
所有编写自定义的'HtlmHelper'都会改变'MyActionLink'生成的html,它不会改变你的代码的工作方式。 – edhedges