10-03
12

IIS及PHP代码301自身域名重定向方法

一、windows服务器,iis6.0。301重定向方法
    以本站为例,本站域名www.shenzhenwo.com,shenzhenwo.com,www.shenzhenwo.cn,shenzhenwo.cn    
目标:将所有域名301跳转到www.shenzhenwo.com,好处我就不说了,绝对有利于SEO,所有域名的权重将集中在www.shenzhenwo.com这个域名上,包括PR,收录等等。    
1、在IIS里网站(主站)的所有主机头删除,只留www.shenzhenwo.com这一个主机头    
2、新建一个网站,暂且命名为ReURL,网站目录可以为空,将新建的这个网站的主机头设为 shenzhenwo.com,www.shenzhenwo.cn,shenzhenwo.cn这三个。    
3、设置ReURL的属性,在“重定向到”一栏里面输入“http://www.shenzhenwo.com$S$Q”,然后在“上面输入的准确URL”和“资源的永久重定向”两个选项前面打钩,最后点应用,就此301重定向全部设置完成。    
4、二级域名的设置方法也跟上面步骤一样,如要将www.shenzhenwo.com/bbs 301转向为bbs.shenzhenwo.com。也许你会说我直接设置个二级域名就可以了,但是搜索引擎会认为www.shenzhenwo.com/bbs/1.htm 和bbs.shenzhenwo.com/1.htm是两个不同的页面,但事实上这两个页面是一样的,因此会分散这个页面的权重。

---------------------------重定向的参数说明--------------------------    

$S-将请求的 URL 的后缀传递给新的 URL。
后缀是用重定向的 URL 代替之后,初始 URL 中所保留的部分。
如果未设置 EXACT_DESTINATION 标志,则结果目标 URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。    
$P-将初始 URL 中的参数(如 querystring 参数)传递至新的 URL,不包括问号 (?)。    
$Q-将初始 URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号 (?)。    
$V-传递请求的 URL,不包括服务器名和任何参数。要包含参数,可使用 $P 或 $Q 变量及 $V 变量。如果未设置 EXACT_DESTINATION 标志,则结果目标 URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。
参数还有很多,基本上最常用的就是$S和$Q,任意网址想要实现301的永久重定向只需设置$S和$Q就可以了。


二、虚拟主机的301重定向方法,以PHP为例。
    在最先执行的页面上面加入以下代码:    
以下代码功能是,将www.kangshunlaw.com跳转到kangshunlaw.com

------------------------------------------------------------------
<?php  
   $the_host = $_SERVER['HTTP_HOST'];//取得进入所输入的域名   $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断地址后面
   if($the_host == 'www.kangshunlaw.com')//这是我要更正的域名地址  
   {  
       header('HTTP/1.1 301 Moved Permanently');//发出301头部  
       header('Location: http://kangshunlaw.com'.$request_uri); //跳转
    }
?>


------------------------------------------------------------------    

需要说明的是,这个代码只能实现当前页面的跳转(也就是加了代码的这个页面的跳转)。
要实现整站的跳转,则需在服务器上设置。  
另外在网络上看到很多以下代码的跳转方式:
-------------------------------------------------------
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.kangshunlaw.com/");
exit();
-------------------------------------------------------
其实这种方式是不对的,没有做头部判断造成死循环。
这种方式只适合从A域名跳转到B域名,比如你帮网站换了个新域名。要实现带www和不带www之间的跳转则需用第一段代码。

另附301重定向检测地址:http://www.ranknow.cn/tools/redirectcheck

文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 301 重定向 302 自身域名 IIS PHP
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.