我创建了一个虚拟目录,并指向了一个指向该虚拟目录的子域。当我们的链接离开子域链接时,它总是会路由到subdomain.domain.com/subdomain/controller/action。有没有一种简单的方法可以阻止它?
此外,当我将anotherdomain.com映射到我的虚拟目录时,也是同样的问题。它最终链接到anotherdomain.com/virtualdir/controller/action。
让我的所有链接都是myapp.com/myapp/action/controller对我来说是不专业的。
答案 0 :(得分:2)
我也想知道这一点,但我不相信你可以在ASP.NET MVC附带的现成路由中实现这一点。
值得庆幸的是,用户可以自由选择如何处理这些内容,并且可以找到您可能想要考虑的解决方案{。{3}}。
ASP.NET MVC团队似乎已经认识到默认情况下应该预先将其预先添加到MVC中,但是在v2之前我没有看到任何事情,因为它需要更改路由引擎。
如果不这样做,您可能需要考虑网址重写(如果您有IIS7,这显然会更容易)。 here是一个讨论此问题的IIS论坛帖子。
IIS 7重写示例(取自Here):
<rule name="RewriteSubdomain">
<match url="^(.+)">
<conditions>
<add input="{HTTP_HOST}" type="Pattern" pattern="^([^.]+)\.myapp\.com$">
</conditions>
<action type="Rewrite" url="{C:1}/{R:1}" />
</rule>