我有以下情况:
www.somedomain.com - >这指向共享主机上的文件夹,例如/ MyFolder1 www.otherdomain.com - >这指向同一共享主机上的另一个文件夹,例如/ MyFolder2
使用asp.net mvc,我的网址被映射到:
www.somedomain.com/MyFolder1/Action www.somedomain.com/MyFolder2/Action
我(显然)不希望我的网址上有“MyFolder1”和“MyFolder2”。我如何在asp.net MVC上解决这个问题?
我希望:
www.somedomain.com/Action www.somedomain.com/Action
但我需要将子文件夹保留在IIS(或其他一些允许我拥有两个站点的解决方案,同一主机上有不同的域)。
非常感谢帮助。
由于
答案 0 :(得分:1)
处理此IMO的最佳方法是在IIS级别使用重写。我刚刚在使用IIS 7 URL Rewrite的站点上执行此操作。如果您的主机提供程序上未安装此模块,则可以尝试使用其他URL重写工具之一。但是,例如在DiscountASP上,您可以使用IIS 7 URL重写。
首先,您需要将所有域指向当前站点。然后,当您下载工具http://blogs.iis.net/bills/archive/2008/05/31/urlrewrite-module-for-iis7.aspx时,它提供了用于编辑规则的GUI。最终将规则放入web.config文件中。您希望规则看起来像这样:
<rewrite>
<rewriteMaps>
<rewriteMap name="otherdomain" />
</rewriteMaps>
<rules>
<rule name="otherdomain" stopProcessing="false">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="otherdomain.com" />
</conditions>
<action type="Rewrite" url="/site_folder/otherdomain/{R:0}" />
</rule>
</rules>
</rewrite>
如果你正在使用ISAPI重写,我可能会很快就有一个我正在使用的不支持IIS重写的主机
答案 1 :(得分:0)
我的托管服务提供商正在使用带有ISAPI_Rewrite的IIS 6。
它工作正常,www.somedomain.com/MyFolder1/Action在入口页面上成为www.somedomain.com/Action。但是所有Url.ActionLink()都会再次映射到我不想要的www.somedomain.com/MyFolder1/Action。
答案 2 :(得分:0)
最简单的方法是在共享主机上创建子域。像app1.somedomain.com和app2.somedomain.com这样的东西,子域直接映射到应用程序所在的子目录,并成为根目录。