php中页面301跳转我们使用header()函数发送状态代码301的同时再跳转到指定页面了,实现的方法非常的简单.
注意:
301,302 都是http状态的编码,都代表着某个url发生了转移,不同之处在于:
301 redirect:301 代表永久性转移(permanently moved),302 redirect:302 代表暂时性转移,temporarily moved.
例子,在php中正常的临时跳转通常使用,代码如下:
最简单的做法,代码如下:
$the_host = $_server['http_host'];//取得当前域名 if($the_host != 'noniu.com')//判断获取的这个域名是不是你想要的(即定向后的域名) { header(http/1.1 301 moved permanently);//发出301头部 header(location:phprm.com) //跳转到你希望的域名 exit(); }
这个还可以实现比如phprm.com 跳转到www.phprm.com 上,也就是让所有的页面都用带www的网址,代码如下:
apache下301转向代码
新建.htaccess文件,输入下列内容,需要开启mod_rewrite.
1)将不带www的域名转向到带www的域名下,代码如下:
options +followsymlinks rewriteengine on rewritecond %{http_host} ^lesishu.cn [nc] rewriterule ^(.*)$ http://www.phprm.com /$1 [l,r=301]
2)重定向到新域名,代码如下:
options +followsymlinks rewriteengine on rewriterule ^(.*)$ http://www.phprm.com /$1 [l,r=301]
wordpres根目录301跳转,代码如下:
# begin wordpress options +followsymlinks rewriteengine on rewritecond %{http_host} ^phprm.com [nc] rewriterule ^(.*)$ http://www.phprm.com /$1 [l,r=301] rewritecond %{the_request} ^[a-z]{3,9} /index.php http/ rewriterule ^index.php$ http://www.phprm.com / [r=301,l] rewriterule ^index.php$ - [l] rewritecond %{request_filename} !-f rewritecond %{request_filename} !-d rewriterule . /index.php [l] # end wordpress
分析:php 301跳转代码只适合于全php页面或单页面做跳转了,apache/iis 301跳转适用于大量的网站域名301跳转了,他们两共同点都是实现301但两者各人有优点吧,大家自行根据自己情况选择吧.
文章链接:
随便收藏,请保留本文地址!