多域名与301永久性重定向
作者:lcy 日期:2008-11-26
多域名与301重定向
常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh:
301 redirect: 301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302 redirect: 302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。
meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。
301 Redirect实现网页重定向
IIS服务器实现301重定向
* 打开internet信息服务管理器,在欲重定向的网页或目录上按右键
* 选择“重定向到URL”
* 在“重定向到”输入框中输入要跳转到的目标网页的URL地址
* 选中“资源的永久重定向”(切记)
* 最后点击“应用”
Apache服务器实现301重定向
相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。
Redirect permanent / http://www.domain.com/ (将目录下内容重定向到http://www.domain.com/)
redirect permanent /index.php http://www.domain.com/index.php?go=category_6(将网页index.php重定向到http://www.domain.com/index.php?go=category_6)
通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站Apache手册。
PHP下的301重定向
<?
Header( "HTTP/1.1 301 Moved Permanently" ) ;
Header( "Location: http://www.bloghuman.com" );
?
ASP下的301重定向
<%@ Language=VBscrīpt %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.domain.com"
%>
ASP .NET下的301重定向
<scrīpt runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader ("Location","http://www.domain.com");
}
</scrīpt>
ColdFusion下的301重定向
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.domain.com">
旧域名重定向到新域名
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。
记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
请将上面的www.domain.com修改成你想要跳转到的域名。
此外,我建议大家归总旧网站的外部链接,并联系相应的站点修改导入链链的URL,以指向新站点。
注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用
域名301重定向到www的二级域名
在以前的文章中我反复提及过:www.domain.com是domain.com域下的一个二级域名,并对二级域名和一级目录之间如何选择以及网站结构优化做了一个详细的分析,有兴趣的可以读一下两篇文章,网站结构优化是SEO中最重要。
OK,继续域301跳转到www二级域的实现方式:
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保所有来自对domain.com的请求都转向到对www.domain.com进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
请将上面的domain.com和www.domain.com修改成你想要跳转到的域名。
注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用
301重定向检测工具
配置完成后,一定认真检查一下是否正确。Internet有很多类似的Server Header检查工具,如Check Server Headers Tool - HTTP Status Codes Checker
网站服务器响应网页浏览请求的运作流程
让我们先来了解一下用户/搜索引擎和网站一开始的交互流程。当用户或搜索引擎向一个网站服务器发出网页浏览请求时,该服务器将:
1.通过域名服务器(DNS)将域名转换为网站的IP地址,然后返回给客户
2.打开一个该IP套接口连接
3.记下通过该套接口的一个HTTP数据流
4.从WEB服务器接收一个响应请求的HTTP数据流。该数据流包含状态码,状态码的值由HTTP协议所决定。这里所说的“HTTP数据流”信息也叫“头信息(Header)”。头信息中包括了日期,服务器类型,通常还会有一条“200 OK”信息。如果一切良好,那么网络服务器就会将“200 OK”信息以及请求页面发送出去。如果网站在这时候已经建立了重定向,那么服务器就会在头信息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信息。搜索引擎会根据服务器头信息中的内容作出决定。
网站重定向的注意事项
1.若准备将服务器上的文件移到其它地方时,须就以下信息正确地通知搜索引擎的爬行程序:
- 目标地址:这些文件被移向何方
- 移动属性:暂时移走还是永久性移走
2.对拥有多个域名的网站,专家建议应把那些不想在搜索引擎上推广的域名用301跳转命令来永久性重定向。
确保网站实施了正确的301重定向
对于正确实施301重定向,有这样几个方法可供大家参考:
1.在.htaccess文件中增加301重定向指令
2.适用于使用Unix网络服务器的用户。通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。形如:Redirect 301 / http://www.yourdomain.com/
3.在服务器软件的系统管理员配置区完成301重定向
适用于使用Window网络服务器的用户
4.采用“mod_rewrite”技术
通过该技术进行的改变将在.htaccess文件中体现出来,形如:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain.com
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]
5.绑定/本地DNS(域名别名跳转)
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。
若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
DNS服务器的设置
若要将aaa.domain.com指向www.domain.com,则只需在DNS服务中应增加一个别名记录,可写成:aaa IN CNAME www.domain.com。
如需配置大量的虚拟域名,则可写成:* IN CNAME www.domain.com.
这样就可将所有未设置的以domain.com结尾的记录全部重定向到www.domain.com上。
6.用ASP/PHP实现301重定向:
代码在上面已经介绍过了
301重定向经验谈
一个多域名站主的经验之谈:
“我只有一个网站,主域名是www.domain.com,此外还有诸如domain1.com、domain2.com、domain3.com等共计十几个域名。所有这些次级域名都映射到www.domain.com,而且所有域名对应的是同一个IP地址。由于事实上我只有一个站点,一个站点又只能对应一个.htaccess文件,显然不可能直接修改.htaccess文件来实现重定向。我采用了如下步骤:
A.把domain1.com从domain.com上独立出来,让它成为服务器上的一个普通独立网站。
B.为domain1.com创建一个.htaccess文本文件,并在文件中设置重定向代码为:
Redirect permanent / http://www.domain.com/
再将修改后的.htaccess文件上传给domain1.com所在服务器。
这一步也可以在域名控制面板中完成。
C.进入域名控制面板,将所有原来绑定到domain.com上的域名从domain.com上释放,然后重新绑定到doamin1.com。这样一来,这些被绑定的域名使用的都是domain1.com的.htaccess文件,因而也就意味着它们都被永久性重定向到domain.com上了。好了,大功告成! 就这么容易!
常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh:
301 redirect: 301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302 redirect: 302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。
meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。
301 Redirect实现网页重定向
IIS服务器实现301重定向
* 打开internet信息服务管理器,在欲重定向的网页或目录上按右键
* 选择“重定向到URL”
* 在“重定向到”输入框中输入要跳转到的目标网页的URL地址
* 选中“资源的永久重定向”(切记)
* 最后点击“应用”
Apache服务器实现301重定向
相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。
Redirect permanent / http://www.domain.com/ (将目录下内容重定向到http://www.domain.com/)
redirect permanent /index.php http://www.domain.com/index.php?go=category_6(将网页index.php重定向到http://www.domain.com/index.php?go=category_6)
通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站Apache手册。
PHP下的301重定向
<?
Header( "HTTP/1.1 301 Moved Permanently" ) ;
Header( "Location: http://www.bloghuman.com" );
?
ASP下的301重定向
<%@ Language=VBscrīpt %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.domain.com"
%>
ASP .NET下的301重定向
<scrīpt runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader ("Location","http://www.domain.com");
}
</scrīpt>
ColdFusion下的301重定向
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.domain.com">
旧域名重定向到新域名
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。
记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
请将上面的www.domain.com修改成你想要跳转到的域名。
此外,我建议大家归总旧网站的外部链接,并联系相应的站点修改导入链链的URL,以指向新站点。
注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用
域名301重定向到www的二级域名
在以前的文章中我反复提及过:www.domain.com是domain.com域下的一个二级域名,并对二级域名和一级目录之间如何选择以及网站结构优化做了一个详细的分析,有兴趣的可以读一下两篇文章,网站结构优化是SEO中最重要。
OK,继续域301跳转到www二级域的实现方式:
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保所有来自对domain.com的请求都转向到对www.domain.com进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
请将上面的domain.com和www.domain.com修改成你想要跳转到的域名。
注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用
301重定向检测工具
配置完成后,一定认真检查一下是否正确。Internet有很多类似的Server Header检查工具,如Check Server Headers Tool - HTTP Status Codes Checker
网站服务器响应网页浏览请求的运作流程
让我们先来了解一下用户/搜索引擎和网站一开始的交互流程。当用户或搜索引擎向一个网站服务器发出网页浏览请求时,该服务器将:
1.通过域名服务器(DNS)将域名转换为网站的IP地址,然后返回给客户
2.打开一个该IP套接口连接
3.记下通过该套接口的一个HTTP数据流
4.从WEB服务器接收一个响应请求的HTTP数据流。该数据流包含状态码,状态码的值由HTTP协议所决定。这里所说的“HTTP数据流”信息也叫“头信息(Header)”。头信息中包括了日期,服务器类型,通常还会有一条“200 OK”信息。如果一切良好,那么网络服务器就会将“200 OK”信息以及请求页面发送出去。如果网站在这时候已经建立了重定向,那么服务器就会在头信息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信息。搜索引擎会根据服务器头信息中的内容作出决定。
网站重定向的注意事项
1.若准备将服务器上的文件移到其它地方时,须就以下信息正确地通知搜索引擎的爬行程序:
- 目标地址:这些文件被移向何方
- 移动属性:暂时移走还是永久性移走
2.对拥有多个域名的网站,专家建议应把那些不想在搜索引擎上推广的域名用301跳转命令来永久性重定向。
确保网站实施了正确的301重定向
对于正确实施301重定向,有这样几个方法可供大家参考:
1.在.htaccess文件中增加301重定向指令
2.适用于使用Unix网络服务器的用户。通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。形如:Redirect 301 / http://www.yourdomain.com/
3.在服务器软件的系统管理员配置区完成301重定向
适用于使用Window网络服务器的用户
4.采用“mod_rewrite”技术
通过该技术进行的改变将在.htaccess文件中体现出来,形如:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain.com
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]
5.绑定/本地DNS(域名别名跳转)
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。
若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
DNS服务器的设置
若要将aaa.domain.com指向www.domain.com,则只需在DNS服务中应增加一个别名记录,可写成:aaa IN CNAME www.domain.com。
如需配置大量的虚拟域名,则可写成:* IN CNAME www.domain.com.
这样就可将所有未设置的以domain.com结尾的记录全部重定向到www.domain.com上。
6.用ASP/PHP实现301重定向:
代码在上面已经介绍过了
301重定向经验谈
一个多域名站主的经验之谈:
“我只有一个网站,主域名是www.domain.com,此外还有诸如domain1.com、domain2.com、domain3.com等共计十几个域名。所有这些次级域名都映射到www.domain.com,而且所有域名对应的是同一个IP地址。由于事实上我只有一个站点,一个站点又只能对应一个.htaccess文件,显然不可能直接修改.htaccess文件来实现重定向。我采用了如下步骤:
A.把domain1.com从domain.com上独立出来,让它成为服务器上的一个普通独立网站。
B.为domain1.com创建一个.htaccess文本文件,并在文件中设置重定向代码为:
Redirect permanent / http://www.domain.com/
再将修改后的.htaccess文件上传给domain1.com所在服务器。
这一步也可以在域名控制面板中完成。
C.进入域名控制面板,将所有原来绑定到domain.com上的域名从domain.com上释放,然后重新绑定到doamin1.com。这样一来,这些被绑定的域名使用的都是domain1.com的.htaccess文件,因而也就意味着它们都被永久性重定向到domain.com上了。好了,大功告成! 就这么容易!
评论: 0 | 引用: 0 | 查看次数: -
发表评论