如何设置404页面,404错误页面自定义方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置404页面,404错误页面自定义方法相关的知识,希望对你有一定的参考价值。

1、Apache服务器下设置404错误页面
为Apache Server设置 404错误页面的方法很简单,首先制作一个名为404.html/404.htm/404.php/404.asp/404.aspx的页面,视空间要求而定,再在.htaccess 文件中加入如下内容即可(.htaccess文件一般linux空间会自带的,如果没有这个文件,自己可以用记事本写一个,命名为.htaccess,一定要记得去掉记事本文件的.txt哦。而windows虚拟空间是没有这个文件的,也不用上传这个文件):
# 404 page
ErrorDocument 404 /notfound.php
(“notfound”是你给你的自定义错误页面的命名,你也可以改成Error.php等等)
注意:
(1).切记不要将404错误跳转到网站主页,比如使用了js脚本或者meta refresh跳转技术。否则可能会导致主页在搜索引擎中消失或者不被收录.
(2).切记不要使用绝对URL如果使用绝对URL返回的状态码是“302”+“200”
2、IIS/ASP.net下设置404错误页面
静态404错误页面设置
(1)做个404页面,404.html或者404.htm,根据你的网站实际情况来。
(2)服务器/虚拟主机管理设置,根据自己的情况,选择“使用根目录下的404页面”,如果自己能找到“消息类型”选项,则要选择“文件”或者“默认值”,而不能选择“URL”。如果自己在主机提供商网站的管理后台找不到此“消息类型”选项请联系技术客服做出修改。这是具有决定性的一步。 这步一定要操作好,如果在后台找不到这个消息类型,就不要自己设置,因为你设置之后肯定返回值是200,所以事先和客服联系下。
(3)上传404.htm到网站根目录,打开一次试试,看是否成功了。
参考技术A  相信网上有很多关于404页面的制作帖子了,这里我要总结的是根据自己这一次网站被降权而总结的404自定义错误页面的制作,绝对超级详细。
  一、什么是自定义404错误页面?
  404自定义错误页面就是当用户输入了错误的url地址或者输入了一个不存在的url地址时,所返回的一个页面,它的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口网站离开。
  二、404自定义错误页面是如何形成的?
  HTTP 404 错误意味着链接指向的网页不存在,即原始网页的URL失效,这种情况经常会发生,很难避免,比如说:网页URL生成规则改变、网页文件更名或移动位置、导入链接拼写错误等,导致原来的URL地址无法访问;当web服务器接到类似请求时,会返回一个404 状态码,告诉浏览器要请求的资源并不存在。但是,Web服务器默认的404错误页面,无论Apache服务器还是IIS服务器,均十分简陋、呆板且对用户不友好,无法给用户提供必要的信息以获取更多线索,无疑这会造成用户的流失。
  因此,很多网站均使用自定义404错误的方式以提供用户体验避免用户流失。一般而言,自定义404页面通用的做法是在页面中放置网站快速导航链接、搜索框以及网站提供的特色服务,这样可以有效的帮助用户访问站点并获取需要的信息。
  三、404自定义错误页面对SEO的影响
  自定义404错误页面是增强用户体验的很好的做法,但在应用过程中,网站制作者往往并未注意到对搜索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码或自定义404错误页面使用Meta Refresh属性导致返回“302”状态码。正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是 “200”或“302”。虽然对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎这则是相当重要的。
  所以要确保404页面返回的是404代码而不是200和302.在自定义404错误页面设置完毕后,一定要检查一下其是不是能够正确地返回“404”状态码。可以使用Server Header检查工具(http://www.sendong.net/seo-tools/redirect-check/),输入一个不存在网页的url,查看一下HTTP Header的返回情况,确信其返回的是“404 Not found”。
  四、定制404错误页面的基本原则
  首先应明确的是,404错误页面应工作在服务器级而不是网页级。对定制使用动态页面如PHP脚本类型的404页(如:404.php、404.asp、404.aspx等)时,必须确保在PHP执行前服务器已经顺利地送出“404”状态码,不然,一旦执行到了ISAPI(一般运行在windows服务器上的伪静态脚本服务技术)级别,返回的状态码便只能是“200”或其他如“302”之类的重定向状态码了。对于大部分使用了windows虚拟主机,同时又支持PHP程序运行的服务器,一般都使用了ISAPI技术,他们可以提供两种自定义技术,一种静态404.htm页面, 这种页面一般不直接放在网站的根目录之下,而是放在一个“HttpError”这个文件夹之下,但是返回的状态码是“200”,另一种是动态404页(如:404.php)等的设置,这种设置,就是在网站的根目录之下放一个404.php之类的动态页面,这样会返回状态码“404”,所以网站的制作者,在虚拟主机的后台设置时,必须看清楚自己的设置,如何要做网站的SEO优化,那么就要设置成能返回“404”状态码的那种,否则就会吃大亏.
  其次,在自定义网站的404错误页面时,对设置的错误页面URL链接应使用相对路径而不是绝对路径,而且自定义404页面应该放在网站根目录下。尽管无效链接可能是多种形式的URL,但当发生404访问错误时,WEB服务器会自动将其转到自定义的当404错误页中,这跟URL的形似没有关系。
  五、404错误页面的设置方法
  1、Apache服务器下设置404错误页面
  为Apache Server设置 404错误页面的方法很简单,首先制作一个名为404.html/404.htm/404.php/404.asp/404.aspx的页面,视空间要求而定,再在.htaccess 文件中加入如下内容即可(.htaccess文件一般linux空间会自带的,如果没有这个文件,自己可以用记事本写一个,命名为.htaccess,一定要记得去掉记事本文件的.txt哦。而windows虚拟空间是没有这个文件的,也不用上传这个文件):
  # 404 page
  ErrorDocument 404 /notfound.php
  (“notfound”是你给你的自定义错误页面的命名,你也可以改成Error.php等等)
  注意:
  (1).切记不要将404错误跳转到网站主页,比如使用了js脚本或者meta refresh跳转技术。否则可能会导致主页在搜索引擎中消失或者不被收录.
  (2).切记不要使用绝对URL如果使用绝对URL返回的状态码是“302”+“200”
  2、IIS/ASP.net下设置404错误页面
  静态404错误页面设置
  (1)做个404页面,404.html或者404.htm,根据你的网站实际情况来。
  (2)服务器/虚拟主机管理设置,根据自己的情况,选择“使用根目录下的404页面”,如果自己能找到“消息类型”选项,则要选择“文件”或者“默认值”,而不能选择“URL”。如果自己在主机提供商网站的管理后台找不到此“消息类型”选项请联系技术客服做出修改。这是具有决定性的一步。 这步一定要操作好,如果在后台找不到这个消息类型,就不要自己设置,因为你设置之后肯定返回值是200,所以事先和客服联系下。
  (3)上传404.htm到网站根目录,打开一次试试,看是否成功了。
  动态404错误页面设置
  首先,修改应用程序根目录的设置,打开 “web.config” 文件编辑,在其中加入如下内容:
  

<P><configuration></P>

<P>  <system.web></P>

<P>  <customErrors mode=”On” defaultRedirect=”error.asp”></P>

<P>  <error statusCode=”404″ redirect=”notfound.asp” /></P>

<P>  </customErrors></P>

<P>  </system.web></P>

<P>  </configuration></P>
复制代码
  注:上文例中“error.asp”为系统默认的404页面,“notfound.asp”为自定义的404页面,使用时请修改相应文件名。
  然后,在自定义的404页面“notfound.asp”中加入:
 

<P> <%</P>

<P>  Response.Status = “404 Not Found”</P>

<P>  %></P>
复制代码
  这样,便可以保证IIS能够正确地返回“404”状态码。
  所有的设置完成之后,别忘记检测http状态,确定返回的是404,而不是200。本回答被提问者采纳
参考技术B 404错误页面是WWW网站访问比较经常出现的错误。大家最熟悉的也是最常见的出错提示:404 not found。404页面就是当用户输入了错误的链接时,返回的页面。而默认的404错误页面呆板麻木,让访问者感觉很挫败,可能会直接离开您的网站。
自定义404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开。是增强用户体验的很好的做法。
简而言之,有两点:
1、提高用户站内浏览体验;
2、增强对搜索引擎的友好性。
二、404页面和SEO优化的关系:
很多网站存在这个问题:为了增强用户体验,从而自定义404页面;但是没有正确设置404页面,导致返回的是200或302状态码而不是404状态码。这对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎却是相当重要的。
搜索引擎通过HTTP状态码来识别网页的状态。当搜索引擎获得了一个错误链接时,网站应该返回404状态码,告诉搜索引擎放弃对该链接的索引。而如果返回200或302状态码,搜索引擎就会为该链接建立索引,这导致大量不同的链接指向了相同的网页内容。结果是,搜索引擎对该网站的信任度大幅降低,很可能网站轻则被搜索引擎降权,重则会K掉网站。
三、404页面设置方法详细说明:
上面提到404错误应工作在服务器级而不是网页级,那么404页面的设置内容就要分2步了,一是服务器端的设置,二就是自定义404页面了。
针对不同服务器,对应的404页面设置也不同,现在为大家一一介绍:
一)IIS/.net服务器
分2步完成:
1、修改应用程序根目录的设置,打开web.config文件编辑,在其中加入如下内容:
<configuration>
<system.web>
<customErrorsmode=”On”defaultRedirect=”error.asp”>
<errorstatusCode=”404〃redirect=”notfound.asp”/>
</customErrors>
</system.web>
</configuration>
注:“error.asp”为系统默认的404页面,“notfound.asp”为自定义的404页面,使用时请修改相应文件名。
2、制作404页面notfound.asp。
为保证能正确返回“404”状态码,可在自定义的404页面“notfound.asp”中间加入以下代码:
<%Response.Status=“404NotFound”%>
这样,便可以保证IIS能够正确地返回“404”状态码。
二)apache服务器
为ApacheServer设置404错误页面的方法很简单,分2步完成:
1、服务器端设置:
在网站根目录的.htaccess文件中加入以下内容:
ErrorDocument404tfound.php
2、制作404页面notfound.php,上传到网站根目录。
notfound.php为举例,实际制作时请自定义404页面文件名。
如果您的网站根目录下没有.htaccess文件,可联系您的服务器商。
三)虚拟主机
其实现在大部分网站都使用的是虚拟主机,这时候并不需要知道是何种服务器,只要按照控制面板提供的相应功能设置即可。
同样分2步完成:
1、制作404页面notfound.php,上传到网站根目录;
2、请登录你的虚拟主机管理后台,点虚拟主机管理,找到你的主机,进入这个主机管理的控制面板,找到”自定义出错页”项目。
四、测试
这时候404页面设置好了,一定要注意测试我们的设置是否正确。
大家可以用“HttpWatch”这个工具去检查,也可以用在线工具检查。
最后说一下SEO优化关于设置404页面的其他要注意的几点心得体会:
1、避免过于简单和技术;
2、制作个性化设计把用户拉回来;
3、增加建议让用户跟着你走;
4、利用转向将用户导入指定的页面;
5、合理利用适当增加些广告。
6、至少要有一个主页的返回链接。这是实现友好反馈的最低限度。
7、在有效的帮助信息不足的情况下,如何通过访客的反馈弥补错误等等内容。
8、不要自动跳转,让用户来决定去向。

云服务器自定义网站404页面不生效

平时在网络上,看到一些设置自定义404页面的方法,其实那只是一个很平常的操作方法,为什么大多数设置了却不起作用呢?或者说调用不出来404页面呢?

1、先设置好自定义404

上传404页面-打开IIS(internet信息服务)-选择你的网站,右击属性,点击自定义错误(在下面的:“http错误信息”框中找到404,选中双击,或者选中在点“编辑属性”选择自己的自定义404页面。不过,此处在“消息类型”中一定要选择“文件”或“默认值”,而不要选择“URL”,不然,将导致返回“200”状态码。)

2、寻找设置了404页面不生效的原因

1)404自定义出错页设置错误

2)404文件的IIS_WPG组没有读取和运行的权限。

3)404.html文件大小过小(>512B)

4)服务器安装了安全狗(解决办法:安全狗-资源保护-响应内容保护(HTTP请求错误类型,去掉404))

经过多方测试,以上方法都有可能,但最可能的是第2条,第4条,其实按正规设置,都是不会出错的,因此如果是自己搭建服务,有安装相应的防御软件,就要多加注意了,只要细心,都可以找到相应的解决办法,希望对您有一定的帮助。(附属篇:解决VPS服务器IIS设置404不生效的方法)

来源:途牛博客 本文链接:http://www.tuniuboke.com/post/271.html

以上是关于如何设置404页面,404错误页面自定义方法的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Codeigniter 在自定义 404 页面中重定向 404 错误?

如何在 CodeIgniter 中为 403 禁止错误设置自定义页面

thinkphp 5.0如何实现自定义404(异常处理)页面

Django 自定义错误页面 403 404...

Django 自定义错误页面 403 404...

codeigniter 自定义 404 页面不起作用