php中页面301跳转我们使用header()函数发送状态代码301的同时再跳转到指定页面了,实现的方法非常的简单.
注意:
301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:
301 redirect:301 代表永久性转移(Permanently Moved),302 redirect:302 代表暂时性转移,Temporarily Moved.
例子,在php中正常的临时跳转通常使用,代码如下:
<?php header("Location:your_dest_url");?>
最简单的做法,代码如下:
-
$the_host = $_SERVER['HTTP_HOST'];
-
if($the_host != 'noniu.com')
-
{
-
header("HTTP/1.1 301 Moved Permanently");
-
header("Location:vcphp.com)
-
exit();
-
}
这个还可以实现比如vcphp.com 跳转到www.vcphp.com 上,也就是让所有的页面都用带www的网址,代码如下:
-
<?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.vcphp.com')
-
{
-
header('HTTP/1.1 301 Moved Permanently');
-
header('Location:http://www.vcphp.com'.$the_url);//跳转到带www的网址
-
}
-
?>
Apache下301转向代码
新建.htaccess文件,输入下列内容,需要开启mod_rewrite.
1)将不带WWW的域名转向到带WWW的域名下,代码如下:
-
Options +FollowSymLinks
-
RewriteEngine on
-
RewriteCond %{HTTP_HOST} ^lesishu.cn [NC]
-
RewriteRule ^(.*)$ http://www.vcphp.com /$1 [L,R=301]
2)重定向到新域名,代码如下:
-
Options +FollowSymLinks
-
RewriteEngine on
-
RewriteRule ^(.*)$ http://www.vcphp.com /$1 [L,R=301]
wordpres根目录301跳转,代码如下:
-
# BEGIN WordPress
-
Options +FollowSymlinks
-
RewriteEngine on
-
RewriteCond %{http_host} ^vcphp.com [NC]
-
RewriteRule ^(.*)$ http://www.vcphp.com /$1 [L,R=301]
-
rewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
-
rewriteRule ^index.php$ http://www.vcphp.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但两者各人有优点吧,大家自行根据自己情况选择吧.
(责任编辑:最模板) |