我们基本知道url标准化需要采用301重定向。页面永久性移走,通常叫做301跳转,也叫301重定向,301转向.指的是当用户点击一个网址时,通过技术手段,跳转到指定的一个网站。301跳转多用于旧网址在废弃前转向新网址以保证用户的访问,在诸多服务器中,均支持本跳转方法。
1、php网站的301跳转
现在网上有很多说法,就拿PHP的网站程序来说,很多人说修改index.php文件可以做301重定向,这样可以看似301重定向成功了,但用301检测工具会发现做了两次301重定向,最后转到的200是index.html。
这里说一下采用web.config配置文件做301重定向。主机需支持Urlrewrite,一般情况下主机都支持Urlrewrite 的,一个小模块,空间商都会安装上。
下面是web.config文件:不管是qinglongweb.com转向www.qinglongweb.com,还是网站换新域名都可以。
比如www.qinglongweb.cn转向www.qinglongweb.com
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WWW Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^需要转的域名$" />
</conditions>
<action type="Redirect" url="http://要转到的域名/{R:0}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
将修改好的文件上传到网站的根目录。这里由于上传不了文件,所以教大家用DW创建web.config文件。用DW新建一个XML,把新创建XML里 的代码删除,将上面的代码复制到新创建的XML里,点击菜单文件—另存为—修改名字和后缀,即文件名改为web.config。然后将该文件上传到网站根 目录就OK了。最后到主机控制面板看下默认主页是否是index.html,要将默认主页修改为index.html才行。
2、IIS下301设置
Internet信息服务管理器 -> 虚拟目录 -> 重定向到URL,输入需要转向的目标URL,并选择“资源的永久重定向”。
3、ASP下的301转向代码
<%@ Language=VBScript %>
<%
if request.ServerVariables("SERVER_NAME")="bbs.seotest.com" or request.ServerVariables("SERVER_NAME")="seotest.com" then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.qinglongweb.com/"
Response.End
end if
%>
4、ASP.Net下的301转向代码
<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(”Location”,”www.qinglongweb.com/301/“);
}
5、CGI Perl下的301转向代码
$q = new CGI;
print $q->redirect(”www.qinglongweb.com/301/”);
6、JSP下的301转向代码
<%
response.setStatus(301);
response.setHeader( “Location”, “www.qinglongweb.com/301/ );
response.setHeader( “Connection”, “close” );
%>
7、Apache下301转向代码
新建。htaccess文件,输入下列内容(需要开启mod_rewrite):
1)将不带WWW的域名转向到带WWW的域名下
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^lesishu.cn [NC]
RewriteRule ^(。*)$www.qinglongweb.com/301/[L,R=301]
2)重定向到新域名
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(。*)$www.qinglongweb.com/301/ [L,R=301]
3)使用正则进行301转向,实现伪静态
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^news-(。+)/.html$ news.php?id=$1
将news.php?id=123这样的地址转向到news-123.html
8、Apache下vhosts.conf中配置301转向
为实现URL规范化,SEO通常将不带WWW的域名转向到带WWW域名,vhosts.conf中配置为:
<VirtualHost *:80>
ServerName www.qinglongweb.com/
DocumentRoot /home/seotest
</VirtualHost>
<VirtualHost *:80>
ServerName seotest.com
RedirectMatch permanent ^/(。*) www.qinglongweb.com/301/
</VirtualHost>
上面说过这种跳转方式是搜索引擎认可的,搜索引擎的设计者以及考虑到一个域名并不一定会跟随一个网站一辈子,利用这种跳转方式可以让搜索引擎认 为您“永久”放弃这个域名并启用了新的域名,那么搜索引擎会把你的老域名相应权重转移到新的域名上来。不过这里要说明一下,并不是通过301跳转就能使权 重完全转移的,这个还有很多因素决定。