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 相关文章推荐
关于时间计算的结总
Dec 06 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
Sep 22 PHP
PHP按行读取、处理较大CSV文件的代码实例
Apr 09 PHP
微信公众平台之快递查询功能用法实例
Apr 14 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
php英文单词统计器
Jun 23 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
php+laravel依赖注入知识点总结
Nov 04 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开启gzip页面压缩实例代码
2010/03/11 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
浅析php数据类型转换
2014/01/09 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
div移动 输入框不能输入的问题
2009/11/19 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
Python入门篇之编程习惯与特点
2014/10/17 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
python交易记录整合交易类详解
2019/07/03 Python
django的model操作汇整详解
2019/07/26 Python
Python中的self用法详解
2019/08/06 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
如何利用python生成MD5并去重
2020/12/07 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
初中生自我评价
2014/02/01 职场文书
文化活动实施方案
2014/03/28 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android