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>
把不带www的域名301到带www的域名RewriteEngine On
RewriteCond %{http_host} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
“RewriteEngine On”,开启 Rewrite 规则开关;
“RewriteCond”指重写的条件。后面的字符串通过正则表达式进行匹配,匹配字符串以 ^ 开头并以 $ 结尾。此处 %{http_host} 获取当前主机名称。条件为“当主机名称为example.com”时执行下列的重写规则。其中“[NC]”指不区分大小写;
“RewriteRule”,定义一条重写规则。此处含义:跳转到“http://www.example.com/”接上访问请求的网址中 example.com 后面的部分。[R=301] 指重写为 301 重定向/跳转([R] 单指跳转,意义等同 [R=302]),[L] 指最后一条匹配规则。
把老域名301到新域名
更换域名时,老域名的权重不能浪费了,把老域名的顶级域名和带www的域名都要301到新域名,代码如下
RewriteEngine On
RewriteCond %{http_host} ^(www.)?old.com$ [NC,OR]
RewriteCond %{http_host} ^new.com$ [NC]
RewriteRule ^(.*)$ http://www.new.com/$1 [R=301,L]
现在无论你访问old.com,www.old.com,new.com都会301到www.new.com 够完美了吧!而且所有的内页也会跟着301,接下来至少等待2个月,期间不要删除原域名,静等权重完全转移!
需要注意的是,wordpress默认情况下不支持该条命令,因为wordpress的网址本身就是伪静态的,要想实现这个功能,必须先把wordpress的内页生成html文件。
IIS 6中的.htaccess 301定向
以下规则适用于 IIS 6中的 ISAPI_Rewrite 2.x 3.x 中的httpd.ini或.htaccess
注意这儿的.htaccess不是apache中的.htaccess 规则略有不同。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)