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 相关文章推荐
深入理解PHP原理之异常机制
Aug 21 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
PHP5权威编程阅读学习笔记 附电子书下载
Jul 05 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
php自定义的格式化时间示例代码
Dec 05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
Jun 23 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 PHP
详解PHP+AJAX无刷新分页实现方法
Nov 03 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
Yii框架的redis命令使用方法简单示例
Oct 15 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实现下载断点续传的方法
2014/11/12 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
python合并文本文件示例
2014/02/07 Python
python中对list去重的多种方法
2014/09/18 Python
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
python图像和办公文档处理总结
2019/05/28 Python
Python实现最常见加密方式详解
2019/07/13 Python
Django异步任务线程池实现原理
2019/12/17 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
工作证明英文模板
2014/10/21 职场文书
教师求职自荐信
2015/03/26 职场文书
节约用电倡议书
2015/04/28 职场文书
少先队工作总结2015
2015/05/13 职场文书