如何做301重定向并做URL统一标准化
经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:
www.example.com
example.com/
www.example.com/index.html
example.com/index.php
而这样导致:你站点主域名的pr值分散到其他几个URLs了。
如果你用301重定向把其他三个URL转到
www.example.com
PR也就集中在主域名:www.example.com 了。
301重定向具体办法:
设置.htaccess文件(只适用于linux系统,并需要虚拟主机支持。)
使访问example.com/的时候就会自动转到www.example.com
在.htaccess文件里写上以下代码即可。
RewriteEngine on
RewriteCond %{http_host} ^mydomain.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
了解本站的.htaceess文件设置,请 点击这里
注意:URL标准化的301重定向(以上代码)需要写在其他URL-rewrite代码之前。
>>>>>其他一些方法
一:Linux系统的虚拟主机
用记事本建设一个文件,其内容为:
RewriteEngine on
RewriteCond %{http_host} ^*****.com [NC]
RewriteRule ^(.*)$ http://www.*****.com/$1 [L,R=301]
之后保存文件名为:“.htaccess”,若虚拟主机支持的话,那么301重定向便正确得以实施。针对程序:无限制!
二:win系统中的虚拟主机
相对于win系统做301重定向,其要求要比linux系统苛刻的多,不过相对来说方法也有很多:
1、iis7.0以下系统,ASP语言:
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently" Response.AddHeader "Location","http://www.****.com"
%>
可在要做重定向的页面头部加入如上内容,全站301可加到诸如:top.asp、conn.asp等通用文件之中。
2、IIS7.0一下系统,PHP语言:
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.domain.com” );
?>
注:HTML页面无法添加301重定向代码,仅支持JS跳转或META REFRESH,而对于HTML跳转,更多时候显示的结果常为“302”临时定向,易被搜索引擎认为作弊论处。
3、IIS7.0以上操作系统
跟目录下可建立“web.config”文件,继而进行301的重定向:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WWW Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^***.****.com$" />
</conditions>
<action type="Redirect" url="http://www.*****.com/{R:0}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
三:不区分系统的301重定向
不区分操作系统的301重定向,首先建设一个“子目录”名为“301”,然后用TXT记事本建立一个文件:
<%@ Language=VBScript %>
<%Response.Status="301 Moved Permanently"
Response.AddHeader "Location" ,"www.*****.com"%>
最后将文件名保存为“index.asp”,当然需要虚拟主机支持首页的默认文档。之后将需要做转向的域名如:“admin5.com”绑定到子目录“301”。接下来,在刷新一下,看是否已经做了301重定向了呢?但未经深度测试,不知是否不利于优化。二进制曾以此观察,几天中未发现异常。
对虚拟主机的301重定向做了一个较为说明,希望对广大使用虚拟主机的站长来说有所帮助。而对于独立服务器或VPS站长,完全可以通过服务器的设置来定义301,对此也就不做过多说明了。虚拟主机设置301不同环境下,需要不同对待,设置错误易导致不可预料的结果产生。同时设置完毕,推荐广大站长使用“301重定向检测工具”做一个测试,若返回代码为“301”则定向成功,而一旦返回302的话,则需认真对待了。不过使用如上代码也不会返回302,更多时候则为静态页面中使用跳转后返回的302临时定向。