我的託管計劃的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