是否有一种简单的方法可以使用RedirectToAction方法向单个Action(或Controller)添加www前缀?
我尝试使用Redirect()但是给我一些其他问题。我认为它会重新启动会话。
更新
我添加了一个实现类似属性的类:
public class ExtendAttributes
{
public class AddwwwPrefix : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
string host = filterContext.HttpContext.Request.Url.Host;
if (host.Contains("www."))
{
return; //It already contains www. so don't change it
}
else
{
host = "www." + filterContext.HttpContext.Request.Url.Host;
}
// redirect to HTTP
string url = "http://" + host + filterContext.HttpContext.Request.RawUrl;
filterContext.Result = new RedirectResult(url);
}
}
}
所以我可以这样使用它:
[ExtendAttributes.AddwwwPrefix]
public ActionResult MyAction()
{
...
答案 0 :(得分:0)
您可以配置IIS来实现此目的。
在“绑定”下,添加网站所服务的所有主机名。
添加HTTP功能URL重写,并添加入站规则:
模式:(.*)
输入{HTTP_HOST}与模式^www\..*
重定向网址:http://(your target domain)/(R:1)
附加查询字符串,重定向类型Permanent (301)
根据您的需求进行调整。