中国最大的自助建站提供商——>>意动社区 成功案例 精美模板
关于意动 | 产品全览 | 免费体验 | 服务与支持 | 建站资源与素材 | 访问旧版网站
      首 页   如何制作网站   如何建网站   网站优化   网络营销   常见问题   网站建设客户   智能一点通         VIP套餐    定制网站
URL地址标准化:/index.php以比/

不幸的是,索引页的概念(index.php,default.aspx等)也将引起另一种重复内容问题。如果向WEB服务器没有提供目录中的文件名,默认情况下服务器就会提供“索引”页面,但是并没有重定向到这个页面。如果同时存在这两个URL地址的链接,无论是从内部还是从其他站点,就会出现问题。因为有两个URL地址用于访问同样的内容,就导致了重复内容。严格地说,没有哪一个URL地址比另一个更正确:更短的URL地址更合人意,往往相比“index.php”而言,我们更愿意使用“/”。

 

解决方案类似于处理www.example.com与example.com问题。无论何时,当服务器得到的请求是以index.php或index.html结尾的文件路径,就必须使用301重定向到包含它的目录。只要使用一条mod_rewrite规则或用PHP,就可以实现重定向。

 

 使用mod_rewrite时,只需在.htaccess文件中添加以下行:

 

RewriteCond %{THE_REQUEST} ^GET\ .*/index\.{php|html}\ HTTP

RewriteRule ^(.*)index\.(php|html)$ /$1 [R=301,L]

 

在进行这些更改后,试着加载http://seophp.example.com/index.php,它将重定向到http://seophp.example.com/。这条规则对子目录也适用,比如从http://www.example.com/Proudcts/index.php重定向到http://www.example.com/Products/。

 

此外,也可以在PHP代码中处理重定向。在接下来的练习中完成它。

 

 去掉“index.php”

 

一、在seophp文件夹中添加文件index.php,代码如下:

 

<?php

require_once 'include/url_redirect.inc.php';

fix_index_url();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd>

<html>

<head>

<title>SEO Egghead:SEO for Nerds</title>

</head>

<body>

<h1>Welcome to SEO Egghead!</h1>

</body>

</html>

 

 二、在url_redirect.inc.php文件中添加如下代码:

 

<?php

require_once 'url_factory.inc.php';

function fix_index_url(){

if(preg_match('#(.*)index\.(html|php)$#',$_SERVER['REQUEST_URI'],$captures))

{

header('HTTP/1.1 301 Moved Permanently');

header('Location:'.SITE_DOMAIN.$captures[1]);

}

}

?>

 

三、加载http://seophp.example.com/index.php,期待它重定向到http://seophp.example.com/

 

 这些代码非常直观。开始创建index.php是非常简单的版本,它仅包含一个标题。然而,这个index.php文件的特别之处在于,在其开始处,它加载了url_redirect.inc.php脚本。这个脚本检查了访问本页面的URL地址是否以"index.php"或“index.html”结尾。

 

if(preg_match('#(.*)index\.(html|php)$#',$_SERVER['REQUEST_URI'],$captures))

 

在此使用了正则表达式,来检查URL地址是否以上述文件名结尾。调用了函数preg_match(),并通过在圆括号中放置“.*”,即“(.*)”,来指示将位于文件名之前的全部字符保存起来。这些字符都保存在$captures[1]里,它们将会是想要重定向的位置。

 

如果存在匹配,那么就可以执行301重定向:

 

{

header('HTTP/1.1 301 Moved Permanently');

header('Location:'.SITE_DOMAIN.$captures[1]);

}

 

其他类型的重定向

 

尽管有其他类型的重定向,比如元刷新和JavaScript重定向,但是通常并不推荐使用它们。垃圾网站曾经滥用它们,正因如此,使用它们几乎总是令人生疑的。建议在延迟不超过10秒时,永远不要使用元刷新。典型的元刷新示例如下:

 

<meta http-equiv="refresh" content="10;url=http://www.seoegghead.com/">

 

我们根本不推荐使用基于JavaScript的重定向。如果被发现,它很可能导致某种类型的惩罚。

 

 

 


用户名:
密 码:
新手建站全过程视频讲解教程 成功案例
在线客服
如何制作网站

FLASH和AJAX

使用自定义标记语言来生成搜索引擎友好的HTML

搜索引擎友好的HTML

用图像来替换文字

使用sIFR

可检索的图像和图形文本

实现可检索的弹出窗口

搜索引擎友好的JavaScript(二)

搜索引擎友好的HTML和JavaScript

重定向数化的会员URL地址例子#2

重定向数化的会员URL地址

常见重复页面的解决方案(三)

常见重复页面的解决方案(二)

常见重复页面的解决方案(一)

网络空间的优势

免费空间的缺点与分类

如何挑选免费空间

空间是什么

帮助中心 付款方式 合同下载
北京蓝纤科技有限公司 Copyright 2000 - 2008
总机:010-64681504  64684094   传真:010-64673024
意动时代建网站联系:888@edo2008.com  代理意动时代自助建站业务:zhangyong@edo2008.com
非上班时间值班电话:13693193565 北京市通信管理局:京ICP证040119号
地址:(100028)北京市朝阳区静安庄一区领先商务中心106