asp.net-mvc - 在 ASP.NET MVC 1.0 中删除 'WWW'

标签 asp.net-mvc url

我试图强制域名不使用“www”。如果尝试,我想重定向用户。我很少看到 MVC 解决方案。有没有办法利用 MVC 中内置的路由,或者最好的解决方案是什么。

谢谢

最佳答案

作为 ActionFilter 实现,因为它类似于 MVC,并且更明确。

public class RemoveWwwFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var req = filterContext.HttpContext.Request;
        var res = filterContext.HttpContext.Response;


        var host = req.Uri.Host.ToLower();
        if (host.StartsWith("www.")) {
            var builder = new UriBuilder(req.Url) {
                Host = host.Substring(4);
            };
            res.Redirect(builder.Uri.ToString());
        }
        base.OnActionExecuting(filterContext);
    }
}

将 ActionFilter 应用到您的 Controller ,或者您的 Controller 基类(如果有的话)。

有关操作过滤器的介绍,请参阅 Understanding Action Filters在 MSDN 上。

[RemoveWwwFilterAttribute]
public class MyBaseController : Controller

关于asp.net-mvc - 在 ASP.NET MVC 1.0 中删除 'WWW',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2256353/

相关文章:

c# - 根据下拉列表中的所选项目显示复选框

asp.net-mvc - web api 2中autofac的无参数构造函数错误

c# - 如何在asp.net mvc View 中使用unity3d webgl内容?

c# - MVC 和 jQuery 日期选择器

Java:URL 编码为 JSON/Map&Lists

asp.net-mvc - ASP.NET MVC 文件上传错误 - "The input is not a valid Base-64 string"

javascript - js如何在使用文件:///protocol时动态加载json文件

jQuery 验证 addMethod - 检查是否相同的域

url - 在我的本地主机上更改 Tomcat 地址

javascript - 如何调用外部url?