我的应用程序位于子文件夹wwwroot/site1
中,但我使用URL重写入站规则在域www.mydomain.com
的根目录下可用。
这很好用,但问题是ASP.NET MVC使用 /site1
子文件夹生成URL ,因为它不知道IIS级别的重写规则。
解决这个问题的一种方法是创建出站规则,但我认为必须有更优雅的方式。我更愿意在应用程序级别处理它。
有没有办法告诉ASP.NET MVC从所有生成的URL中删除/dga
部分?特别是,以下URL编写者:
Html.ActionLink(...)
Url.Action(...)
return RedirectToAction(...)
当然我可以使用这样的扩展方法:
public static string ReplaceSubfolder(this string str) // and other types
{
return str.Replace("/site1", "");
}
Html.ActionLink(...).ReplaceSubfolder()
Url.Action(...).ReplaceSubfolder()
return RedirectToAction(...).ReplaceSubfolder()
但这更不优雅。我正在寻找一种方法来影响生成URL的路由。
答案 0 :(得分:0)
事实证明,使用IIS非常容易。只需为每个域创建一个单独的Web站点,选择应用程序所在的子文件夹(例如wwwroot/site1
),设置绑定(HTTP和/或HTTPS)以侦听所需的域。创建网站时,Convert to application..
相关文件夹,并且所有内容都应显示在域的根目录中。