我有一个在Azure云服务中托管的MVC应用程序。我需要重定向所有请求:
到
分别。始终确保子域(或www),并始终强制执行https。我可以在应用程序级别执行此操作,例如global.asax,但这感觉不对。我目前正在使用亚马逊的Route53来处理我的DNS需求,但我不确定DNS是否也是这个问题的正确层。处理这个问题的正确方法是什么?
答案 0 :(得分:1)
鉴于它是MVC应用程序,您可以使用[RequireHttps]
属性强制执行https。我个人通常都有一个基本控制器,我的所有其他控制器都继承了这个控制器,并且我将[RequireHttps]
粘贴在该基本控制器上。
或者,将其注册为全局过滤器,如下所示:
protected void Application_Start()
{
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
//... other stuff
}
(从https://stackoverflow.com/a/3285179/11534复制)
至于从裸子域重定向到www,你可能想看看Url Rewriting,你可以在web.config中找到它。有关类似的示例,请参阅Redirect all naked domain urls to subdomain(www) urls preserving the url, except for one page on IIS/ASP.NET 我不得不承认我没有使用网址重写,所以也许其他人可以帮助提供更具体的细节,如何达到你的具体要求...