笔者念鲜的一个分类信息网站首页被K已经很久了,直到今天无意之中在网上看到这样一个说法:在.htaccess中设置404错误页面时不要带主域名,否则返回的就不是404代码;而且404页面也不要直接跳转到首页,否则可能导致首页直接被K。 看完之后我一下子呆住了,我两条戒律都犯了,我是为了保住用户流量,直接用代码的方式把404错误跳转到了首页。 在此,念鲜搜集了一些关于404错误页面的相关知识和正确设置的方法分享给大家,希望站长朋友看过本文之后不再犯同样的错误。
1. 什么是404?
404是一个 http 错误代码,即请求的网页不存在。 代码404的第一个“4”代表客户端的错误,如错误的网页位址;后两的数字码则代表着特定的错误讯息。 就是当用户输入了错误的链接时,返回的页面。 这样的目的是告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开。
2. 为什么需要404页面?
搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程有可能需要很长时间;而当搜索引擎得到“200”状态码时,则会认为该URL是有效的,便会去索引,并会将其收录到索引数据库。 所以,自定义404错误页面不仅是增强用户体验的好做法,而且对搜索引擎也是相当重要的。
3. 良好的404页面应该遵循的理念?
①提供简明的问题描述,用轻松的话语消除访客的挫败感,使得访客转到某个地方而不是后退。
②提供合理的解决方案,辅助访客完成访问目标。
③提供个性化的友好界面,提升访问体验。
4. 如何设置404错误页面?
4.1 在IIS/ASP.net下设置404错误页面
目前IIS虚拟主机设置404的较方便的方法,还是在IDC提供的虚拟主机管理后台进行404设置。 如果你的主机不能自动设置但是你拥有主机配置文件的管理权限,可以修改应用程序根目录的设置,打开 "web.config" 文件编辑,在其中加入如下内容:
此例中"error.asp"为系统默认的404页面,"notfound.asp"为自定义的404页面,使用时请修改相应文件名。 然后,在自定义的404页面"notfound.asp"中加入:
<%
Response.Status = "404 Not Found"
%>
这样,便可以保证IIS能够正确地返回"404"状态码。
4.2 Apache服务器404页面的设置方法
在.htaccess 文件中加入代码:ErrorDocument 404 /Error.html,建立一个简单的html404页面命名 Error.html,把 Error.html放置
在网站根目录即可。 这用到了apache的mod_rewrite模块和.htaccess文件的正则写法。 念鲜给出两种写法:
第一种:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /err404.html [L]
解释一下RewriteCound是指定义重写发生的条件,%{ NAME_OF_VARIABLE }服务变量中的REQUEST_FILENAME是匹配完整文件路径或者目录 -f是指文件 -d指目录 !取反,那样上面可以理解为URL不存在的文件名或者目录时,条件为真,就执行重定义规则也就是跳到err404.html
第二种:
ErrorDocument 404 /err404.html
注意:
不要将404错误直接转向到网站首页,这将导致首页不被收录;
/404.html 前面不要带主域名(即不要设置成www.xinxiwo.com/404.html的方式),否则返回的状态码是302或200状态码。
ErrorDocument 还可以定义其他错误如500 401 403等,后面的参数是重定义的URL