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中的extract的作用分析
Apr 09 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
PHP按行读取文件时删除换行符的3种方法
May 04 PHP
php中substr()函数参数说明及用法实例
Nov 15 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 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
用户的详细注册和判断
2006/10/09 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
json数据的列循环示例
2013/09/06 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
python获取list下标及其值的简单方法
2016/09/12 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
django项目搭建与Session使用详解
2018/10/10 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
Yahoo的PHP面试题
2014/05/26 面试题
杭州-DOTNET笔试题集
2013/09/25 面试题
元宵晚会主持词
2014/03/25 职场文书
工程承包协议书
2014/04/22 职场文书
2016公司年会通知范文
2015/04/25 职场文书
禁毒主题班会教案
2015/08/14 职场文书
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python