产生404的原因主要有以下:

1.浏览器和爬虫:某些浏览器会请求网站的favicon.ico,而如果你的网站根目录下没有这个文件,那么浏览器会有一条404的log,同样搜索引擎会请求robots.txt。但这个影响不大。
2.用户输入了错误URL:某些用户不小心在浏览器地址栏加了一个字符或者删除了一个字符,导致服务器找不到请求的路径。
3.某些网站引用的地址过老:某个页面已经被删除,而其他网站依然引用,他人点击的时候服务器找不到请求的路径。
404与SEO:
本网站由于经过改版,所以有很多失效的链接,而我也提交了死链给百度,但过了半个月也不见百度删除那些失效的链接。后来我用站长工具查询那些链接的HTTP状态,发现竟然返回的是302,这就难怪了。
为了给用户友好的体验,我制作了404页面,并且在Application_Error中捕获404,然后Response.Redicet()到404页面。那时候因为不懂SEO,以为这就算做了404页面。结果发现,这样是做了一个302跳转,这样404的状态码就变成了302,而搜索引擎Spider请求的时候,返回的是302的话,它就会认为你这个网页是正常的!导致网站的失效链接一直不被搜索引擎删除,久而久之,网站的死链过得,就会得到搜索引擎的惩罚。所以,正确的404跳转应该是返回友好页面给用户的同时,返回404的HTTP状态码给Spider。
ASP.NET中404跳转的解决方案:
上一篇讲了ASP.NET中自定义错误页的三种方法,这里就不多说了!
使用的是第三种httpErrors也就是IIS错误页,原因如下:
下面就来讲具体如何操作!
IIS错误页的使用又分三种情况:
1.返回静态文件 2.返回动态页面 3.302重定向。
其中3直接忽略。
1.返回静态文件
使用此方法,需要准备一个静态html页面,然后放在硬盘里,指定路径的时候须给出绝对路径。
web.config中的写法
<system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="D:\ErrorPage\404.html" responseMode="File" /> </httpErrors> </system.webServer>
prefixLanguageFilePath表示客户端语言的文件目录,path表示文件相对于客户端语言目录的路径,responseMode表示响应类型,这里是File(文件)
IIS中的操作
两者选其一即可
由于博主尝试使用文件的时候以失败告终,所以这里不多说,说多了都是泪!
2.返回动态页面
web.config中的写法
</system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="/ErrorPage/NotFound" responseMode="ExecuteURL" /> </httpErrors> </system.webServer>
与上面不同的就是responseMode="ExecuteURL"。
IIS中的操作
两者选其一即可
博主最后选择的这种方法,但是这种方法有几个坑需要注意!
1.不能指定网站相对目录下的静态HTML文件,比如404.html。
2.指定的动态页面cshtm、aspx等,需指定响应码为404。
以上两种情况如果不注意,那么你的404返回的响应码不是404也不是302而是200。
因为这种方法是返回网站根目录下的一个网页来作为404页面,而静态页面只要能访问到,那肯定就是200了。动态cshtml或者aspx如果没指定响应码,那么返回200也不奇怪。
所以说具体做法如下(以ASP.NET MVC为例):
public class ErrorPageController : Controller
{
public ActionResult NotFound()
{
Response.Status = "404 Not Found";
Response.StatusCode = 404;
return View();
}
}
建一个控制器ErrorPage,里面可以定义各种错误页面,这里只是404页面。
然后建一个NotFound视图,把404页面写漂亮一点。
OVER。
这个时候再去请求不存在的路径。
完美解决!
Demo下载地址:点击进入
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# asp.net
# mvc
# 404页面
# 302跳转
# 404
# win2008 r2中IIS7.5及以上设置404错误页面的正确方法
# IIS下自定义404页面返回200状态码的严重性及解决方法
# win2003 iis 404 设置方法与小技巧
# 架构师说比起404我们更怕200错误
# 的是
# 跳转
# 就会
# 找不到
# 这就
# 三种
# 这种方法
# 客户端
# 都是
# 我也
# 几个
# 也不
# 会有
# 死链
# 放在
# 过了
# 下载地址
# 有很多
# 说了
# 两种
相关文章:
如何快速查询网址的建站时间与历史轨迹?
建站VPS选购需注意哪些关键参数?
建站之星如何配置系统实现高效建站?
设计网站制作公司有哪些,制作网页教程?
如何选择靠谱的建站公司加盟品牌?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
建站主机如何安装配置?新手必看操作指南
C++中引用和指针有什么区别?(代码说明)
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
制作旅游网站html,怎样注册旅游网站?
招贴海报怎么做,什么是海报招贴?
如何通过虚拟主机快速搭建个人网站?
如何在阿里云ECS服务器部署织梦CMS网站?
想学网站制作怎么学,建立一个网站要花费多少?
股票网站制作软件,网上股票怎么开户?
C#如何序列化对象为XML XmlSerializer用法
香港服务器租用费用高吗?如何避免常见误区?
已有域名和空间如何搭建网站?
建站主机如何选?高性价比方案全解析
手机网站制作与建设方案,手机网站如何建设?
山东云建站价格为何差异显著?
如何零成本快速生成个人自助网站?
如何快速生成高效建站系统源代码?
教学网站制作软件,学习*后期制作的网站有哪些?
用v-html解决Vue.js渲染中html标签不被解析的问题
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
如何通过可视化优化提升建站效果?
如何快速上传自定义模板至建站之星?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
高防服务器如何保障网站安全无虞?
制作网页的网站有哪些,电脑上怎么做网页?
PHP 500报错的快速解决方法
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
SQL查询语句优化的实用方法总结
如何通过二级域名建站提升品牌影响力?
建站之星如何实现网站加密操作?
如何设置并定期更换建站之星安全管理员密码?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
h5网站制作工具有哪些,h5页面制作工具有哪些?
小建面朝正北,A点实际方位是否存在偏差?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
制作农业网站的软件,比较好的农业网站推荐一下?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
网站代码制作软件有哪些,如何生成自己网站的代码?
如何高效配置IIS服务器搭建网站?
视频网站制作教程,怎么样制作优酷网的小视频?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
*请认真填写需求信息,我们会在24小时内与您取得联系。