一个好的网站,拥有一个好的 404页面 是标配。

为何要有 404页面?如何设置一个 404页面?

why 404 pages?

在本地,比如我打开 localhost/fuck.htm(该文件不存在),HTTP 返回 404 Not Found,同时页面展示如下:

用户体验很差有木有!更重要的是,如果没有 404页面,会影响 SEO。

为什么说会影响 SEO 呢?

当你的网站有些页面地址(路径)改变了。或者内容被删除了,导致原地址访问本页面时,提示页面不存在。比如说你网站改版,也会导致很多原来存在的页面,访问的时候提示页面被删除或不存在。这个时候就会产生很多死链接,当一个网站死链接过多的时候,对搜索引擎是非常不友好的,影响你的网站整体权重,也对用户体验很不好。

这时候就需要一个 404 页面。这个页面是所有死链接的着陆页,所有打不开的页面都会跳转到这个 404 页面。这个页面包含了你的主要的网站栏目导航。用户在这个页面可以很方便的选择继续浏览你网站别的内容。404 页面设置好以后,通过站长工具状态码检,会返回 404 状态码。如果返回状态码是 200 说明是设置错误(这样结果会造成搜索引擎有可能认为你网站有大量的重复内容,从而网站权重被降),虽然对访问的用户而言,HTTP 状态码究竟是 "404" 还是 "200" 并没有什么区别,但对于搜索引擎则是相当重要的。

404 说白了就是在当前页面上做一个返回首页或者其他页面的一个链接,这个链接一方面告诉搜索引擎我们这个页面已经无效了请 "蜘蛛" 再去爬一次首页吧!这样当蜘蛛爬到死链接(404页面)那里的时候就会自动跑到首页并进行索引,也就是说 404 的出现不仅仅让搜索引擎的数据库更快的删除掉这些死链接,还能让蜘蛛更加勤快的认识新网站,可以说是一举两得。

set 404 pages

笔者总结了两种在 APACHE 中设置 404页面的方法。当然首先你得写好一个 404页面,毕竟本质上这也是个 html 页面,内容就可以集思广益了,比方说可以写个小游戏啊,展示网站其他内容,或者说 404公益,等等。这里我写了个文件把它命名为 404.htm,放在本地服务器的根目录下(localhost/404.htm)。

方法一 —— .htaccess 设置:

第一种方法是在 .htaccess 文件中进行相关设置。

什么是 htaccess?概述来说,htaccess 文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。通过 htaccess 文件,可以帮我们实现:网页 301 重定向、自定义 404 错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

关于 htaccess 文件的更多内容可以参考文末链接或者自行谷歌百度。

这文件是不是很奇怪,木有文件名,其实也不奇怪,用过 Git 的话你也肯定见过 .git 文件夹。但是本地服务器下没有该文件啊?在 windows 下从别的文件强制改名转换的话,会提示 "必须键入文件名",so 我们可以用命令行。

打开 cmd,cd 到指定目录后,用如下命令便可创建一个 .htaccess 文件:

echo.>.config

前面说了,htaccess 文件负责相关目录下的网页配置,所以服务器下的任何文件夹都可以有一个自己的 htaccess 文件。这里我们把它放在根目录下。

打开该文件,将以下内容复制进去:

ErrorDocument 404 /404.htm

这时再打开 localhost/fuck.htm,页面内容便会变成 404.htm 的内容,返回 404 状态码,URL 却不会变化。

(PS:如此这般我本地便已经生效,但是有些文章指出还需要在 conf 文件下做一些修改,如果没有生效,可以参考下 这里)

这里有几点需要注意:

  • 一是不能把以上 ErrorDocument 404 /404.htm 中的斜杠漏掉,if so 404 页面会显示字符串 "404.htm"
  • 其二是路径不能用绝对地址,比如说用 “http://localhost/404.htm”,这样页面打开无效的链接后,会跳至 “http://localhost/404.htm” 的地址(改变 URL),返回状态码 200,这不仅影响站长工具的检查结果,而且影响 SEO 的收录
  • 其三是不要把 404 错误直接转到网站首页,这将影响网站的收录。有些人可能会有疑惑,搞什么 404页面,404 的时候直接转到网站根文件不是更好,还能给首页导量,naive 啊,搜索引擎也不是吃素的,它会认为你这是 "欺骗",从而就不待见你了。
  • 如果 IE 还是跳不过去,那肯定是你的 404 页面内容太少了,至少需要 512 b(字节) 才能让 ie "臣服",认为你的 404 页面还是有诚意的

方法二 —— vhosts 设置:

假设你跟楼主一样设置过 vhosts。(如果没有,欢迎参考 WampServer下如何实现多域名配置

接下去就很简单了,打开 vhosts 文件(比如我的路径 \wamp\bin\apache\Apache2.2.21\conf\extra\httpd-vhosts.conf),修改如下:

<VirtualHost *:80>
    DocumentRoot "c:\wamp\www"
    ServerName localhost
    ErrorDocument 404 /404.htm
</VirtualHost>

要注意的点同 htaccess 设置要注意的一致。

总结

404 页面是一个成熟的网站必须要有的东西,主要有两个作用,利于用户体验以及 SEO。在 apache 中有两种设置方式,htaccess 和 vhosts,某些文章指出尽量使用后者,前者比较耗费资源。设置中要注意的点请参考第二小节。

Read More:

如何在 Apache 中为你的网站设置404页面的更多相关文章

  1. 网站设置404页面 --nginx

    有的时候根据域名要先知道用的什么web 服务器 最简单的 http://tool.chinaz.com/pagestatus/  输入域名,看返回的头部信息 用的那个web浏览器 下面的方法也是根据头 ...

  2. 如何在 apache 中设置缓存有效时间

    今天学习了下如何在 apache 中设置缓存时间,记之以备忘. 在 http 报文头中,与缓存时间有关的两个字段是 Expires 以及 Cache-Control 中的 max-age,Expire ...

  3. 如何在linux中批量建立用户并设置随机密码

    Ubuntu是基于linux的免费开源操作系统,同时也是真正意义上的“多任务多用户”操作系统,既然是多用户系统,自然就涉及到创建多个用户的问题.同时由于Ubuntu系统中的root用户具有最高权限,无 ...

  4. windows 2008 中IIS7.0以上如何设置404错误页面

    404错误页面的设置,不仅仅可以提高用户体验度,从SEO方面考虑,也是非常重要的.今天,笔者在这里介绍一下在windows 2008下如何设置404错误页面. 注意:设置404有我这里介绍2种方式,推 ...

  5. 【转】win2008 中iis7设置404页面但返回状态200的问题解决办法

    今天根据SEO反馈,某个站点中设置的404页面返回的http状态为200.通过站长工具进行查询,发现返回的状态确实为200. 通过彻查问题,发现这个网站的服务器环境为windows2008 服务器为i ...

  6. apache 设置404页面

    这几天用xampp搭建了一套环境,后来发现在网页访问出现404的时候xampp显示的内容不安全,把apache.php还有一些其它的版本都会显示 出来,所以想自己设置一个404的页面,在网上找了一些资 ...

  7. 通过修改 Apache 的配置文件 htaccess 文件实现自定义404页面

    最近在学习使用Apache服务器的配置,做一个记录. Apache下有个.htaccess文件,是Apache的一个特殊的配置文件.这个配置文件默认是没有的,要手动在各自的项目的根目录编写才行. 要实 ...

  8. Apache设置404页面

    使用版本:Apache 2.2 1.添加404页面 在所配置网站的根目录添加编辑好的 404.html (页面名字无所谓 比如也可以叫missing.html) 如C:\Program Files\A ...

  9. thinkphp3.2中开启静态缓存后对404页面的处理方法

    静态缓存很实用但是有时有些不需要静态缓存,如404页面,第一次访问返回404页面并缓存,第二次换回的状态就是200,属于正常访问,虽然人眼可以看出是404页面,但是搜索引擎不会的,而是把这个页面当成正 ...

随机推荐

  1. sqlserver删除所有表(表结构和数据)

    要删除某个数据库,或者删除数据库中的所有表(删除表结构和数据),需要先删除表间的外键约束,才能删除表.如删除数据库db_wy中的所有表: --/第1步**********删除所有表的外键约束***** ...

  2. Linux中如何解压iso类型文件

    在Linux下如何解压iso类型的文件呢? 可以使用mount命令来处理 [root@DB-Server tmp]# ls /tmp/rhel-server-5.7-x86_64-dvd.iso /t ...

  3. Linux 虚拟机网络适配器从E1000改为VMXNET3

    我们知道VMware的网络适配器类型有多种,例如E1000.VMXNET.VMXNET 2 (Enhanced).VMXNET3等,就性能而言,一般VMXNET3要优于E1000,下面介绍如果将Lin ...

  4. 遍历map的常用方法

    Map< String, String> map = new HashMap<String, String>();  map.put("a", " ...

  5. 烂泥:KVM使用NAT联网并为VM配置iptables端口转发

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在前面的文章中,我们介绍KVM的虚拟机(以下简称VM)都是通过桥接方式进行联网的. 本篇文章我们来介绍KVM的VM通过NAT方式进行联网,并且通过配置I ...

  6. Linux系统监控命令之iotop

    iotop命令 iotop命令是一个用来监视磁盘I/O使用状况的top类工具.iotop具有与top相似的UI,其中包括PID.用户.I/O.进程等相关信息.Linux下的IO统计工具如iostat, ...

  7. django自动化部署脚本

    while read line;do echo'kill '$line; kill $line; done < /tmp/celeryd.pid while read line;do echo' ...

  8. 10、WGET

    这个我看过比较好的  http://www.cnblogs.com/peida/archive/2013/03/18/2965369.html WGET 支持HTTP和FTP协议,断点续传功能,自动递 ...

  9. Hadoop2.6 datanode配置在线更新

    datanode 的配置可以在线更新了,http://blog.cloudera.com/blog/2015/05/new-in-cdh-5-4-how-swapping-of-hdfs-datano ...

  10. css3 background

    background是一个很重要的css属性,在css3中新增了很多内容.一方面是原有属性新增了属性值,另一方面就是新增了3个属性. 一.css3中新增属性值介绍 css2的background有5个 ...