当前位置:文管王软件资讯技术资料网络资料

网站301跳转

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2020-03-02 21:30:23

301跳转有多种方法,比如通过域名URL转发、服务器的rewrite设置。

但部分服务器域名URL转发功能被禁止使用了,而且绝大部分网站都使用虚拟主机,在不支持

rewrite的情况下,只能通过代码实现301跳转。

下面的代码主要针对新旧2个域名同时绑定一个空间,需要将旧域名跳转到新域名时适用,在

每个页面头部加入以下代码:

if request.ServerVariables(”Server_Name”)<>”www.luoyeju.cn” then

Response.Status=”301 Moved Permanently”

 if request.ServerVariables(”QUERY_STRING”)<>”" then

  Response.AddHeader “Location”,”http://www.luoyeju.cn

&request.ServerVariables(”PATH_INFO”) &”?”& request.ServerVariables(”

QUERY_STRING”)

 else

  Response.AddHeader “Location”,”http://www.luoyeju.cn

&request.ServerVariables(”PATH_INFO”)

 end if

response.end

end if

说明:
实际使用中,Response.AddHeader这行不要换行,否则会出现500错误。这里是因为页面显示

的关系,自动换行了。
因为博客系统的关系,所有双引号自动变成了大写,直接copy使用将出错,请在copy以上代

码后,将所有双引号改成英文双引号。
www.luoyeju.cn替换成你跳转后的域名。
request.ServerVariables(”PATH_INFO”)  表示获取URL,request.ServerVariables(”

QUERY_STRING”) 表示获取URL后面的动态参数。
至于为什么还要判断request.ServerVariables(”QUERY_STRING”)是不是为空?是因为否则

的话不管是不是存在URL后面的动态参数,URL最后都会有一个问号,虽然不影响页面显示,

但对于URL规范来说,不太严谨。

经过以上代码判断,不但转换域名,还能直接跳转到相对应的页面,通过代码彻底实现301跳

转。

其他301相关网络文摘:
当有多个域名指向你的站点时,301跳转是每个网站常用的一种页面跳转方式,针对SEO来说

,作用有以下几点:

1,301跳转是搜索引擎认可的一种跳转方式,也就是说通过这种方式从一个网址跳转到另外

一个网址并不会受到搜索引擎的惩罚。

2,上面说过这种跳转方式是搜索引擎认可的,搜索引擎的设计者以及考虑到一个域名并不一

定会跟随一个网站一辈子,利用这种跳转方式可以让搜索引擎认为您“永久”放弃这个域名

并启用了新的域名,那么搜索引擎会把你的老域名相应权重转移到新的域名上来。不过这里

要说明一下,并不是通过301跳转就能使权重完全转移的,这个还有很多因素决定。301只能

说可以让损失减少到最低。

301的具体设置方式

1、IIS下301设置

Internet信息服务管理器 -> 虚拟目录 -> 重定向到URL,输入需要转向的目标URL,并选择

“资源的永久重定向”。

2、ASP下的301转向代码

<%@ Language=VBScript %>
<%
if request.ServerVariables("SERVER_NAME")="blog.luoyeju.cn" or

request.ServerVariables("SERVER_NAME")="luoyeju.cn" then
 Response.Status="301 Moved Permanently"
 Response.AddHeader "Location", "http://www.luoyeju.cn/"
 Response.End
end if
%>

3、ASP.Net下的301转向代码

<script runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(”Location”,”www.luoyeju.cn/301/“);
}
</script>

4、PHP下的301转向代码

if(($HTTP_SERVER_VARS["HTTP_HOST"]=="blog.luoyeju.cn")($HTTP_SERVER_VARS

["HTTP_HOST"]=="seotest.com"))
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.luoyeju.cn/");
}


5、CGI Perl下的301转向代码

$q = new CGI;
print $q->redirect(”www.luoyeju.cn/301/”);

6、JSP下的301转向代码

<%
response.setStatus(301);
response.setHeader( “Location”, “www.luoyeju.cn/301/ );
response.setHeader( “Connection”, “close” );
%>

7、Apache下301转向代码

新建.htaccess文件,输入下列内容(需要开启mod_rewrite):

1)将不带WWW的域名转向到带WWW的域名下

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^luoyeju.cn [NC]
RewriteRule ^(.*)$www.luoyeju.cn/301/[L,R=301]

2)重定向到新域名

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$wwww.luoyeju.cn/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.luoyeju.cn/

DocumentRoot /home/luoyeju
</VirtualHost>

<VirtualHost *:80>
ServerName seotest.com
RedirectMatch permanent ^/(.*) www.luoyeju.cn/301/

</VirtualHost>

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论