彻底解决asp.net mvc 3 404错误码返回302的问题

来源:互联网 发布:用dwcs5制作淘宝 编辑:程序博客网 时间:2024/06/06 12:24

404状态码:,意味着当在页面上显示用户点击不存在,提高用户体验度,搜索引擎会放弃这个页面索引。

302状态码:搜索引擎将继续指数,这将导致大量不同的链接指向同一个页面,它将影响搜索引擎对站点的信任度。


http://www.cloudke.com.cn/ 后面随便带些参数或者不存在的文件名,然后跳转到自定义错误页,但返回的状态是302。

解决办法:

第一步:

将web.config的customErrors设为off

<customErrors mode="Off"></customErrors>

然后自己处理定制错误信息,在Global.asax.cs中添加如下的代码:

protected void Application_Error(Object sender, EventArgs e)        {            if (!Request.IsLocal)            {                Exception lastError = Server.GetLastError();                if (lastError != null)                {                    Response.StatusCode = 404;                    Response.WriteFile("~/Content/HtmlTemplate/NotFound.htm");                    Server.ClearError();                }            }        }

~/Content/HtmlTemplate/NotFound.htm文件只能为静态文件,这样就不走asp.net的mvc路由器了。

这样配制好后,发现还是有问题,本地访问404可以转到自定义页,但远程访问就不行了,还需要配制一下iis

打开错误页,编辑404页

这个文件路径就是自定义错误页404。

好了,再测试一下:

测试结果正常了。



原创粉丝点击