A-A+
php怎么做301重定向的跳转
关于301,想必不少的站长童鞋都接触过的,大都是在iis或者是apache下的配置文件中直接做,再或者的话就直接做个域名转址就ok了,但是我今天遇到的这个客户的站点,即没有域名的权限,也没有主机的配置权限,我也是醉了!!
好了,哪只好在php文件中修改了,只要能跳过去就OK了,如果能把权重给跳过去就更好了。
首先建立一个301.php 的文件,代码如下:
- $the_host = $_SERVER['HTTP_HOST'];//取得当前域名
- $the_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断地址后面部分
- $the_url = strtolower($the_url);//将英文字母转成小写
- if($the_url=="/index.php")//判断是不是首页
- {
- $the_url="";//如果是首页,赋值为空
- }
- if($the_host !== 'www.xiariboke.net ')//如果域名不是带www的网址那么进行下面的301跳转
- {
- header('HTTP/1.1 301 Moved Permanently');//发出301头部
- header('Location:http://www.xiariboke.net '.$the_url);//跳转到带www的网址
- }
然后在需要301的页面进行 include 就OK了,如下代码:
- <?php include("301.php");?>
其实这种方法就是使用了代码的跳转,比较适合没有任何权限的站长朋友,这里给个小建议,如果是自己做站长的话,最好自己选购空间和域名,这样所有权就是自己的。
好了,这里再放出apache配置文件下的 301 重定向,代码如下:
- Options +FollowSymlinks
- RewriteEngine on
- rewritecond %{http_host} ^xiariboke.net [nc]
- rewriterule ^(.*)$ http://www.xiariboke.net /$1 [r=301,nc]
这是在 apache 下的配置,也是用得最多的301重定向方法,如果可能的话,还是建议使用这种方法。
很早以前主机不支持.htaccess时候用过这个办法。
现在的linux基本都支持的。