< 返回技术文档列表

如何在 Apache 中为你的网站设置404页面

发布时间:2022-11-15 22:25:22⊙投诉举报

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

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

why 404 pages?

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

image.png

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

为什么说会影响 SEO 呢?

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

这时候就需要一个 404 页面。那么什么是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,某些文章指出尽量使用后者,前者比较耗费资源。设置中要注意的点请参考第二小节。

原文链接:如何在 Apache 中为你的网站设置404页面


/template/Home/Zkeys/PC/Static