由301重定向想起的其他重定向方法

2010.12.20 zeba 【 太初星云 】

Auto-Redirecting 的意思是“自动转向”,也叫“自动重定向”。指当访问用户登陆到某站时,自动将用户转向其它网页的技术。转向的网页可以是本站内的其它页面,也可以是其它网站。

当网站的域名变更或删除后将人们转向到新域名下,这就是自动转向的合理应用,也就是今天所要讲的 301 重定向。但是这种技术却往往被 SEO 优化人士用来作为提高网站的搜索引擎排名的一种手段:1、先专门针对搜索引擎做一个高度优化的网页(此所谓桥页),然后把这个网页提交给搜索引擎来获得好的排名;2、当上网用户通过搜索引擎的结果列表点击该网页进入后,却被自动转向到一个用户本来无意去访问的网站。搜索引擎自然会认为这是对读者的误导,所以目前它会对这种网页或网站施以惩戒。不过魔高一尺,道高一丈,还有一些自动转向方法检测不出来。

一、301 页面永久性重定向

这是一种非常重要的“自动转向”技术。当网站的域名发生变更后,搜索引擎就会对新网址进行索引的同时,把旧网址下原有的外部链接全部转移到新网址下,从而不会让网站的排名因为网址变更而受到丝毫影响。在使用301 永久性重定向命令让多个域名指向网站主域时,就不会对网站的排名产生任何负面影响。对于正确实施 301 重定向,有如下五个方法供参考:

1、在 .htaccess 文件中增加301重定向指令。采用“mod_rewrite”技术,如:
RewriteEngine on
RewriteRule ^(.*)$ http://www.mawenze.net///blog/blog/blog/blog////$1 [R=301,L]

2、使用 Unix 网络服务器的用户可以通过如下指令通知 spider :
Redirect 301 / http://www.mawenze.net///blog/blog/blog/blog////

3、在使用 Window 网络服务器软件的系统管理员配置区完成 301 重定向。

4、绑定本地 DNS。如果具有对本地 DNS 记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置:

若要将 i.mkn.name 指向 www.mkn.name,则只需在 DNS 服务中应增加一个别名记录:
i IN CNAME www.mkn.name

如需配置大量的虚拟域名,则可写成:
* IN CNAME www.mkn.name

5、用 PHP/ASP/ASP.NET 实现301重定向:

<?php
Header( "HTTP/1.1 301 Moved Permanently" ) ;
Header( "Location: http://www.mawenze.net///blog/blog/blog/blog///" );
?>

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.mawenze.net///blog/blog/blog/blog///"
%>

<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader ("Location","http://www.mawenze.net///blog/blog/blog/blog///");
}
</script>

二、Meta Refresh 自动转向法

搜索引擎可以读取 HTML,而 Meta Refresh 也是 HTML,所以搜索引擎能够自动检测出来。因而无论网站的转向出于什么目的,都很容易被搜索引擎视做对读者的误导而受到惩罚。不过,如果跳转延迟时间设置合适,搜索引擎也不会视之作弊:
<meta http-equiv="refresh" content="10; url=http://www.mawenze.net///blog/blog/blog/blog////">

其中的“ 10 ”代表页面加载 10 秒钟后自动跳转到 www.mkn.name 这个页面(搜索引擎不希望自动转向有延迟,所以如果用 Meta Refresh 进行转向,一定要把延迟时间设定成至少 10 秒以上)。

三、Javascript 自动转向法

由于搜索引擎不能解析 Javascript,所以无法自动检测用 Javascript 脚本进行的自动转向。Javascript 自动重定向脚本可以放在网页的任何位置上,如果要求立即跳转,则可以将其放入网页源码的 <head> 区内的最上面。用 Javascript 实现跳转的范例如下:
<script language="javascript"><!--location.replace("目的页面.html")//--></script>

其特点在于:用户所访问的目标 URL 不会保留在用户浏览器的历史记录中,如果用户按返回按钮,则将回到跳转前的网页,而不是包含 Javascript 自动重定向脚本的跳转页面。如果需要,可以把 Javascript 自动重定向脚本存在一个外部文件中,并以下方式加载:
<script language="javascript" src="filename.js"></script>。

四、FORM 表单自动转向法

搜索引擎的“蜘蛛”程序不会填写表单,所以可以利用表单来实现自动转向(重定向)而不让搜索引擎察觉。表单的 Action 参数中包含的 URL 地址其实就是浏览器向服务器所请求的 URL,当然浏览器会通过向请求的 URL 地址增加一些格式为 name=value 的参数,以给予它特殊的对待。用 Javascript 脚本可让页面开始加载时即提交表单:
<script language="javascript"><!--document.mkn_name.submit()//--></script>
<form name="myform" action="目的页面.html" method="get"></form>

其中“ myform ”可以是任意名,目的页面可以用相对地址或绝对地址。

五、还有一个 302 重定向。

迄今为止,能够对 302 重定向具备优异处理能力的只有 Google。也就是说,在网站使用 302 重定向命令将其它域名指向主域时,只有 Google 会把其它域名的链接成绩计入主域,而其它搜索引擎只会把链接成绩向多个域名分摊,从而削弱主站的链接总量。所以,我并不推荐,而把它放在了最后。

感谢老薛提供了8年稳定服务器;感谢NameSiloname.com的域名注册服务以及DNS.LA的域名解析服务。
自2025年2月份起,本站文章发表前交由deepseek豆包AI润色。 sitemap