apache+php完美解决301重定向的两种方法


Posted in PHP onJune 08, 2011

幸好有301重定向能有效解决这样的问题。正如月光博客这篇文章中说的,
301重定向可促进搜索引擎优化效果
从搜索引擎优化角度出发,301重定向是网址重定向最为可行的一种办法。当网站的域名发生变更后,搜索引擎只对新网址进行索引,同时又会把旧地址下原有的外部链接如数转移到新地址下,从而不会让网站的排名因为网址变更而收到丝毫影响。同样,在使用301永久性重定向命令让多个域名指向网站主域时,亦不会对网站的排名产生任何负面影响。

关于301重定向的更多内容,大家不妨Google一下。本文只介绍实现方法啦!
301重定向的实现,我以前也写过一篇相关的文章,但这篇文章的解决方法比较简单,只能实现主页的跳转,本文介绍的这两种方法,可以完美实现301重定向。

方法1:修改.htaccess文件
代码如下:

<ifmodule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} blog.iflyhigher.tk$ [NC] 
RewriteRule ^(.*)$ http://blog.3water.com/$1 [R=301,L] 
RewriteCond %{HTTP_HOST} iflyhigher.tk$ [NC] 
RewriteRule ^(.*)$ http://3water.com/$1 [R=301,L] 
RewriteCond %{HTTP_HOST} moiya.tk$ [NC] 
RewriteRule ^(.*)$ http://3water.com/$1 [R=301,L] 
</ifmodule>

本博需要对三个域名进行重定向,所以写的比较多,关键代码就是2句话
RewriteCond %{HTTP_HOST} blog.iflyhigher.tk$ [NC] 
RewriteRule ^(.*)$ http://blog.3water.com/$1 [R=301,L]

红色的域名是需要被重定向的旧域名,绿色的是现在网站的域名。
方法2:使用PHP的重定向代码
新建一个index.php文件,然后参考下面代码按自己的重定向要求做简单修改:
<?php 
$the_host = $_SERVER['HTTP_HOST']; 
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; 
switch ($the_host) 
{ 
case "www.iflyhigher.tk": 
case "iflyhigher.tk": 
$location = "Location: http://3water.com" . $request_uri; 
break; 
case "blog.iflyhigher.tk": 
$location = "Location: http://blog.3water.com" . $request_uri; 
break; 
case "www.moiya.tk": 
case "moiya.tk": 
$location = "Location: http://3water.com"; 
break; 
default: 
$location = "Location: http://3water.com"; 
break; 
} 
header('HTTP/1.1 301 Moved Permanently'); 
header($location); 
exit(); 
?>

如果只要对一个域名进行重定向,可以把代码简化成下面的形式:
<?php 
$the_host = $_SERVER['HTTP_HOST'];//取得进入所输入的域名 
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断后面的请求部分 
if($the_host !== '3water.com')//3water.com是我现在的域名 
{ 
header('HTTP/1.1 301 Moved Permanently');//发出301头部 
header('Location: http://3water.com'.$request_uri);//跳转到我的新域名地址 
exit(); 
} 
?>

注意,最后的exit()函数是一定要写的,我最初就没有写,结果只能重定向首页,像http://blog.iflyhigher.tk/guestbook这样的网页,就无法进行重定向。
最后,关于重定向的一些细节
由于要对三个域名进行重定向,重定向前,我首先将这三个域名作为Addon Domain绑定到我的服务器上去,并让这三个域名指向同一个文件夹,这样,只要修改这一个文件夹中的.htaccess文件或者index.php文件就可以了。如果没有.htaccess文件或者index.php文件,新建一个即可。
希望本文对需要进行301重定向的朋友有帮助。
转载请表明出处: Gevin的博客
PHP 相关文章推荐
java EJB 加密与解密原理的一个例子
Jan 11 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
ThinkPHP3.1之D方法实例详解
Jun 20 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
php正则表达式学习笔记
Nov 13 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
php封装的表单验证类完整实例
Oct 19 PHP
php原生数据库分页的代码实例
Feb 18 PHP
PHP执行系统命令函数实例讲解
Mar 03 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 #PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 #PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 #PHP
php写的简易聊天室代码
Jun 04 #PHP
php结合表单实现一些简单功能的例子
Jun 04 #PHP
PHP中对用户身份认证实现两种方法
Jun 04 #PHP
关于php curl获取301或302转向的网址问题的解决方法
Jun 02 #PHP
You might like
php与php MySQL 之间的关系
2009/07/17 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
python中字符串前面加r的作用
2015/06/04 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
python中字符串的编码与解码详析
2020/12/03 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
教师自荐信
2013/12/10 职场文书
自我鉴定四大框架
2014/01/17 职场文书
大学毕业自我评价
2014/02/02 职场文书
高一学生评语大全
2014/04/25 职场文书
研究生导师推荐信
2014/09/06 职场文书
个人总结与自我评价
2014/09/18 职场文书
悬空寺导游词
2015/02/05 职场文书
初中教师个人总结
2015/02/10 职场文书
公司处罚决定书
2015/06/24 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript