`
gstarwd
  • 浏览: 1495357 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

自定义404页面(Apache+PHP)

    博客分类:
  • SEO
阅读更多

直接把这个写到虚拟主机配置服务器里面去
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html

今天做网站的SEO优化,出现了点小问题,问题是这样的,以前网站blog的地址 是:blog.xxx.com/?12345,然而id是12345的用户被删除或者是被屏蔽以后,做的处理是转向一个页面,上面写着“您访问的空间不存 在!”,并没有做跳转或是其他处理,的确是不够友好,而且一些地址被google收录了,对搜索引擎也很不利。其实网站是有统一的404错误页面的,于是 我就想直接header一个404的请求不就完事了吗。

事实并非如此,并没有像我想的那样,apache这家伙真是不听话啊,它竟然真的给了我一个404的错误页,而不是网站是有统一的404错误页面。看了这篇文章才知道原来是这样啊

PS:在header('HTTP/1.1 404 Not Found');这个的时候的确在不同的浏览器下会有空白页的情况,不知道是什么原因,呵呵

以下是该文章,本文转自其他网站。。。(没写哪个网站是因为我看的也是别人转的,也不知道转了几手了)

本文针对Apache + PHP的网站,如果是Win的,思路也差不多。自定义404页面,也就是当用户访问一个不存在的页面时不显示服务器默认的错误页面,而是显示一个事先做好的提示页面,用户浏览器地址栏的网址依然是他输入/访问的网址。这样做至少有两个好处:

  1. 让用户感到这个错误依然在网站的控制范围内,“这是演出的一部分”。
  2. 让webmaster即时知道有这么一个404页面。

先说说产生404的几种可能

  1. User-Agent(浏览器、搜索引擎bots)会访问固定的文件,例如 Maxthon/Firefox浏览器会请求所有被访问网站的 favicon.ico,如果恰巧那个网站没有这个ico文件,它的服务器log就会多出一行404错误提示,同样的还有搜索引擎请求 robots.txt文件。
  2. 用户错误的输入了URL。比如某人先前访问网站的页面/page1.html,然后利用浏览器地址栏的记录功能重新访问,不料错把backspace当成了回车,意识到后又因为手比脑快直接按回车访问了/page1.htm页面(少了个l)。
  3. 某个页面被删除了,而其他网站,如论坛、搜索引擎还在引用这个链接。

对于第一种情况,当然是上传favicon.ico和robots.txt文件到根目录,制作方法和书写规则不再多说。对于第二种情况,所能做的就是和第三种情况进行区分,既只有因第三种情况发生的时候才通知webmaster进行处理。

下面是Apache + PHP制作自定义404页面的方法。

首先处理文件真的不存在的情况,方法是利用Apache的.htaccess定义,网上介绍的文章 很多 ,不再敷述,方法是在.htaccess最开头加上:ErrorDocument 404 /404.php (/404.php是自定义404页面)。

其次要处理另一种更为常见的404,即数据不存在的404。比如这个Blog系统是数据库驱动的,当用户访问某篇文 章时Blog程序会根据ID查询数据 库,如果恰好这个文章被删除,则应该告诉用户该页不存在,同样的情况还适合于论坛删贴后的提示。目前多数Blog和论坛,及其它数据驱动的网站,处理这种 问题的做法是仅显示不存在的提示而不发送404 header,或者干脆转向到/404.php页面(这样浏览器的地址栏就变成了/404.php)。这种做法的缺点是搜索引擎会看到该网站有很多内容相 同(都是不存在的提示文字),URL不同的页面,或者是看到该网站有很多通过302转向到同一个页面的情况,这些都有可能被搜索引擎误以为是SPAM而惩 罚该网站(很多被惩罚的网站始终认为自己是无辜的,其实都是小错积累的结果)。因为已经pass过了服务器层,.htaccess的404定义不再起作 用,所以在读取数据的php文件种针对这种情况应该做以下处理:

<?
$id = $_GET['id']; //这里获得文章、帖子的索引id
//通过 $id 查询数据库
if(如果没有任何结果)
{
     //以前是仅仅显示“该帖子已经不存在”的提示,现在是:
     require('/404.php');
     @header('HTTP/1.1 404 Not Found');
     @header('Status: 404 Not Found');
     exit;
}
?>

这样做可以保证显示404.php的内容,并且发送404 header,并且浏览器地址栏的网址依然是那个用户原始访问的网址。从人类理解的角度往往会把header()语句放在require()上面,但那会 使php停止执行下面的require函数,把header放在最后反而能把404 header发送出来。建议编写论坛、博客和数据驱动网站程序的人都用上面的方法处理数据不存在时的提示信息,避免和搜索引擎产生误会。

最后说说前面提到的通知webmaster的问题,即区分产生404的第二、第三种情况。显然,两种情况的区别是情况二不含有REFERER信息,所以通知webmaster的代码应该是这样的:

<?
...
if($_SERVER['HTTP_REFERER'] != '') //如果有referer,则证明来自某个页面的点击
{
mail(...把404页面 $_SERVER['REQUEST_URI']和referer页面$_SERVER['HTTP_REFERER']通过email寄到webmaster的信箱);
}
?>

这样webmaster在收到email后应即时联系$_SERVER['HTTP_REFERER']网站的 webmaster修改链接。如果$_SERVER['HTTP_REFERER']是搜索引擎,则因为自定义404页面发送了404 header,搜索引擎会在下次更新索引的时候删除这个页面。如果实在不放心,可以在/404.php页面的头部加上meta tag拒绝所有bot:

<meta content="NOINDEX, NOFOLLOW" name="ROBOTS" />

这样就万无一失了。

分享到:
评论

相关推荐

    WAMP搭建Apache+MySQL+PHP运行环境图文详解[整理].pdf

    安装完成后,在浏览器地址输入http://localhost,可以看到Apache的欢迎页面。 Apache安装目录结构: * bin:存放常用的命令(比如httpd) * cgi-bin:存放Linux下的常用命令(.sh) * conf:存放配置文件(httpd....

    APACHE 自定义404错误页面设置方法

     errorDocument 404 /404.php 1.这个的内容根据你的情况改写 。可是有时候当你用IE浏览的时候会发现,这玩意压根就不跳转,关键的地方就是这个html,如果404.html的小于512字节的话,那么IE会认为这个错误页面不够...

    apache-custom-error-page:apache的自定义错误页面

    apache自定义错误页面 针对Apache Web服务器的自定义错误页面模板(针对移动设备进行了优化,CSS3) 指示 将所有文件复制到服务器的根目录 将这些行添加到您的.htaccess文件中: #Custom Error pages ...

    详细介绍通过配置Apache实现404页面替换

     一般网站报404原因都是找不到资源,是服务器(以Apache为例)报错,Apache自定义了404输出,我们的目的是使用自定义的404.html去替换Apache的输出, 那么就有了下面的代码和过程: 针对Apache服务器:制作一个404...

    视频会员付费系统源码 影视视频模版源码 模板PC+WAP苹果CMS影视模板源码.zip

    1. 后台增加自定义参数,对应会员升级页面 2. 视频,演员,专题,收藏,会员系统模块齐全 3. 直接指定一个分类下视频为免费专区 4. 完整的卡密支付体系,无人看管,无需挂码。 5. 三个播放界面,未注册会员、...

    公司网站源码(pc+wap)小程序 php源码

    完美的seo,所有页面均都能完全自定义标题/关键词描述,PHP程序,安全、稳定、快速;用低成本获取源源不断订单! 特点 1:手工书写DIV+CSS、代码精简无冗余。 2:自适应结构,全球先进技术,高端视觉体验。 3:SEO...

    苹果CMS V10-快猫视频-二开苹果cms视频网站源码-可封装双端APP

    1. 后台增加自定义参数,对应会员升级页面 2. 视频,演员,专题,收藏,会员系统模块齐全 3. 直接指定一个分类下视频为免费专区 4. 完整的卡密支付体系,无人看管,无需挂码。 5. 三个播放界面,未注册会员、...

    苹果CMS V10-LUTU视频-二开苹果cms视频网站源码模板-可封装双端APP(麻豆源码)

    1. 后台增加自定义参数,对应会员升级页面 2. 视频,演员,收藏,会员系统模块齐全 3. 完整的卡密支付体系,无人看管,无需挂码。 4. 三个播放界面,未注册会员、普通注册会员,VIP会员看到的播放界面提醒都不...

    苹果cms V10-快猫视频-二开苹果CMS视频网站源码模板-可封装双端APP

    1. 后台增加自定义参数,对应会员升级页面 2. 视频,演员,专题,收藏,会员系统模块齐全 3. 直接指定一个分类下视频为免费专区 4. 完整的卡密支付体系,无人看管,无需挂码。 5. 三个播放界面,未注册会员、...

    (麻豆源码完整版)苹果CMS V10-油条视频-二开苹果cms视频网站源码模板-可封装双端APP#MDYS14

    1. 后台增加自定义参数,对应会员升级页面,以及积分充值 2. 视频,演员,专题,收藏,会员系统模块齐全,支持子分类,不再只显示单一的主分类 3. 直接指定一个分类下视频为免费专区 4. 完整的卡密支付体系,无人...

    php友情交流系统 php mysql apache

    12.聊天室:本聊天室基于php+mysql,有悄悄话和动作功能。所有聊天信息储存在chatinfo数据表,系统默认满200条将自动删除多余聊天信息。部分功能参考了Yuzi的cgi聊天室,在此致谢。 四、会员等级及积分 会员等级共分...

    php5技巧集-从魔兽看PHP设计模式

    Windows XP系统下安装apache+php+mysql 用SSH与PHP相连接 确保数据传输的安全性 从魔兽看PHP设计模式 Fedora下Zend Studio 6.1.2 的配置 微软对PHP支持的改进 及其它一些胡言乱语 php生成静态页面的办法 PHP绘制3D...

    PBOOTCMS响应式教育培训机构网站模板(PC+WAP)

    完美的seo,所有页面均都能完全自定义标题/关键词描述,PHP程序,安全、稳定、快速; 后台:域名/admin.php 账号:admin 密码:admin 配置需求:语言程序:PHP + SQLite前端规范:html+css+jQuery设备支持:PC...

    快猫视频 二开苹果cms视频网站源码_可封装双端APP.rar

    1.后台增加自定义参数,对应会员升级页面 2.视频,演员,专题,收藏,会员系统模块齐全 3.直接指定一个分类下视频为免费专区 4.完整的卡密支付体系,无人看管,无需挂码。 5.三个播放界面,未注册会员、普通注册会员...

    ComsenzEXP Discuz集成PHP环境 X2.5 GBK Build 20120601

    ComsenzEXP 可以自动安装 Apache + PHP + MySQL 运行环境,并且自动安装好 Discuz! X2.5 正式版 ,使用户能够完方便整的体验 Comsenz 社区产品所带来的魅力。 安装程序功能:1.规范的安装界面。2.可选择一键安装和...

    PHP图书管理系统(源码+数据库+使用说明).zip

    注意:“127.0.0.1”的默认端口号为“80”,在安装Apache服务器时如果端口号采用的不是默认设置,而是用户自定义的(例如:88),那么需要在地址栏中输入“127.0.0.1:88/29”,即可正确运行程序。 使用说明 操作注意...

    羊驼CMS v3.6.2

     功能特性方便上手, 5 分钟即可定制出简易的网站支持 Mysql / SQlite 数据库无限级别子栏目子栏目可设置独立风格(站中站)支持自定义原型属性,可以管理复杂的页面可实现复杂页面排版静态url, 面向 SEO 优化数据...

    PHP阿狸子订单系统源码 自适应电脑手机端.rar

    模板可随意切换且能自定义样式,让您的页面总是与众不同。 5、防丢单,邮件即时通知。 6、可计算运费,设置推广渠道,物流查询等等 安装教程: 直接运行你的域名即可跳转到安装界面,最好把主机的默认首页设置成...

    淘客帝国v5.20破解本地后台化

    配置中心完全本地化 RAR高压缩版本 【安装方法】 1:下载最新淘客帝国系统安装包并解压缩 2:上传至网站根目录,或子目录 ...4:logo默认路径img/风格/logo.gif 用您自己的...2:Linux/Unix 平台:Apache + PHP(V5.1以上)

    淘客帝国5.15破解版完整稳定 整合文章系统文章版

    修复IE6 IE7 IE8 出现的错位页面 后台地址域名/admin 账号密码:admin 【基本功能】 基本参数配置:配置App,PID,站长联系信息,备案信息,统计代码,更改管理员密码等! 友情链接管理:后台即可增添或删除...

Global site tag (gtag.js) - Google Analytics