一,404是什么意思
404:链接请求的页面不存在,以及页面内加载图片,加载文件如果没找到也会报404,not found。404页面干什么用的呢?
404页面的作用是:告诉浏览者其所请求的页面不存在或链接拼写错误,同时引导用户使用网站其他页面而不是关闭窗口离开。
看一看我404错误页面吧,我觉得很搞笑的那种。哈哈http://blog.51yip.com/404.html
二,404页面设置的误区
1,ErrorDocument 404 http://blog.51yip.com/404.html网上有人说这样导致首页不能收录,没试过。
2,出现404时,现在好多CMS系统,都会把404转到首页去,当有N个url出现404时,有相同的内容,这样的结果是你的首页会在很长一段时间,不能被搜索引擎收录。有人会问了,不同的url,拥有相同的内容,为什么就会在搜索引擎里面消失呢?因为搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据 库中删除,当然,删除过程有可能需要很长时间;而当搜索引擎得到“200”状态码时,则会认为该url是有效的,便会去索引,并会将其收录到索引数据库, 这样的结果便是这许多个不同的url具有完全相同的内容:自定义404错误页面的内容,这会导致出现复制网页问题。轻则被搜索引擎降权,重则会K掉网站。
以wordpress为例,下面是wordpress自动生成的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
说明:上面的紫色字我解释一下什么意思,是说找不到文件和目录时,会重写到首页去。也就是index.php是全站的统一入口,就是说你想干什么都要经过我。像这种情况,我觉得根本没有办法,完完全全实现404。
a),ErrorDocument 404 /404.html 没有截止功能,如[L]就是说发现404了,就不走下面了东东了,但是没有。
b),我曾经尝试这样做就把网页中的重写规则全部拿出来,如下
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule /tag/(.*) /index\.php\?tag=$1 [L]
RewriteRule /category/?(.*)/ /index.php\?category_name=$1 [L]
.
.
.
.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /404.html [L]
</IfModule>
这样做呢根上面的那个重写是一样没有多大区别,如果把重写都拿出来,下面的RewriteRule ./404.html [L]就没有多大意义了。
四,404设置。
1,利用apache来设置,你可以在apache的配置文件中控制,也可以在.htaccess控制。方法如下
ErrorDocument 404 /404.html
说明:上面的404是放在根目录下面,如果你要二级目录,或者更深的话,要这样
ErrorDocument 404 /所在目录/404.html 例如:ErrorDocument 404 /blog/404.html
2,如果像wordpress这样统一入口的网站,还要添加404页面到数据库
具体请参考,我以前写的二篇博客,手动添加标签页和留言板。这样做有没有用呢,至少可以让404所转向页面中的内容可以和真正首页中的内容完全不一样。因为wordpress自己有个404页面,但是包括了网站的顶部和测边栏。
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/seo/831.html