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 相关文章推荐
资料注册后发信小技巧
Oct 09 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
Jul 14 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
php对数组排序代码分享
Feb 24 PHP
php自定义session示例分享
Apr 22 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
php常用表单验证类用法实例
Jun 18 PHP
WordPress中获取所使用的模板的页面ID的简单方法
Dec 31 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
PHP 应用容器化以及部署方法
Feb 12 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
德生PL990的分析评价
2021/03/02 无线电
多重?l件?合查?(二)
2006/10/09 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
javascript 建设银行登陆键盘
2008/06/10 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
js实现登录验证码
2016/12/22 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
python 6行代码制作月历生成器
2020/09/18 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
销售心得体会
2014/01/02 职场文书
三年级语文教学反思
2014/02/01 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
员工表扬信怎么写
2015/05/05 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书