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 相关文章推荐
打造计数器DIY三步曲(下)
Oct 09 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
Jan 14 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
PHP采集类Snoopy抓取图片实例
Jun 19 PHP
PHP实现的连贯操作、链式操作实例
Jul 08 PHP
joomla数据库操作示例代码
Jan 06 PHP
非常经典的PHP文件上传类分享
May 15 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
Apr 06 PHP
PHP实现简易图形计算器
Aug 28 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 函数中使用static的说明
2012/06/01 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
python3大文件解压和基本操作
2017/12/15 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
Python自带的IDE在哪里
2020/07/01 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
大学生职业生涯设计书
2014/01/02 职场文书
安全演讲稿大全
2014/05/09 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
爱鸟护鸟的宣传语
2015/07/13 职场文书
学前班教学反思
2016/02/24 职场文书
Python 全局空间和局部空间
2022/04/06 Python
MySQL 数据库范式化设计理论
2022/04/22 MySQL
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers