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+java实现自动新闻滚动窗口
Oct 09 PHP
php foreach、while性能比较
Oct 15 PHP
php 生成静态页面的办法与实现代码详细版
Feb 15 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
基于Zend的Config机制的应用分析
May 02 PHP
浅析Apache中RewriteCond规则参数的详细介绍
Jun 30 PHP
PHP生成不同颜色、不同大小的tag标签函数
Sep 23 PHP
php中cookie的使用方法
Mar 29 PHP
PHP防盗链代码实例
Aug 27 PHP
CI(CodeIgniter)模型用法实例分析
Jan 20 PHP
PHP中Cookie的使用详解(简单易懂)
Apr 28 PHP
PHP中localeconv()函数的用法
Mar 26 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 创建标签云函数代码
2010/05/26 PHP
解析php中反射的应用
2013/06/18 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
js密码强度检测
2016/01/07 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python中的探索性数据分析(功能式)
2017/12/22 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
python绘制分布折线图的示例
2020/09/24 Python
python制作微博图片爬取工具
2021/01/16 Python
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
初中班主任寄语
2014/04/04 职场文书
离职证明标准格式
2014/09/15 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
入党个人总结范文
2015/03/02 职场文书
2015年教研工作总结
2015/05/23 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
创业计划书之溜冰场
2019/10/25 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL