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中json_encode中文编码问题分析
Sep 13 PHP
PHP时间戳与日期之间转换的实例介绍
Apr 19 PHP
php三维数组去重(示例代码)
Nov 26 PHP
PHP根据session与cookie用户登录状态操作类的代码
May 13 PHP
php使用number_format函数截取小数的方法分析
May 27 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
Sep 22 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
laravel中命名路由的使用方法
Feb 24 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
PHP架构及原理知识点详解
Dec 22 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第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
PHP实现递归无限级分类
2015/10/22 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
基于Jquery的温度计动画效果
2010/06/18 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
python将图片转base64,实现前端显示
2020/01/09 Python
python如何运行js语句
2020/09/09 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
个性与发展自我评价
2014/02/11 职场文书
低碳环保演讲稿
2014/08/28 职场文书
六查六看心得体会
2014/10/14 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
商铺租房协议书范本
2014/12/04 职场文书
趣味运动会赞词
2015/07/22 职场文书
导游词之大雁塔景区
2019/09/17 职场文书
高一作文之暖冬
2019/11/09 职场文书