定向
编辑
301永久重定向:这是SEO中的一个基础名词,在URL规范化中会用到,也许大家都知道这个名词,但是由于应用的不是非常频繁,导致很多专业做SEO的朋友都不是很熟悉301永久重定向的具体操作方法,今天我就讲解下301永久重定向的理论,以及实际的操作方法
作用
编辑
301永久重定向是所有的重定向方法中唯一符合搜索引擎规则的重定向方法,其他的重定向还包括302暂时重定向和JS跳转等,这些方式都容易导致URL不规范问题的产生。所以说如果你有多个域名都希望可以让他们访问同一个网站,那就只能将其中一个做为主域名,剩下的其他域名做301永久重定向到这个主域名,只有这样才可以完美的让多个域名都访问一个站点,不会产生重复收录,导致网站被惩罚的现象
执行方法
编辑
301永久重定向有几种不同的做法,在windows主机上和Unix/Linux主机是不同的。
在windows主机上设置的方法
可以在IIS服务器上设置也可以在代码中设置。
1、在IIS服务器上设置301的方法
这种设置方法需要有一个先天条件,那就是你有服务器的管理权,你可以直接操作IIS服务器,并且可以随意开通新的虚拟主机,否则你只能用修改网站代码的方法。
首先开通一个新的虚拟主机,将你需要做301永久重定向的域名正常与该空间绑定,这个绑定的方法你可以咨询服务器托管商。
然后打开“控制面板”→找到“管理工具”→打开“Internet 信息服务”。打开后,可以在管理器左侧树形菜单中找到你的网站,然后右击选择“属性”,打开网站的属性管理面板(如下图),并且选择到“主目录”选项卡,选择“重定向到URL”,然后在地址框中输入“主域名”,然后将选项卡中的“资源的永久重定向”选择上,点击确定即可设置完毕。
2、在网站代码中设置301的方法
只需要将以下代码加在网页的开头即可,不过只能用在ASP和PHP文件中,HTML无法通过代码设置301。
ASP代码: !
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently" Response.AddHeader "Location" , " http://www.###.com"
%>
PHP代码:
<?
Header( “HTTP/1.1 301 Moved Permanently” )
Header( “Location: http://www.###.com” )
?>
注:将我的网址替换成你自己的定向后的目标网址即可,所有的标点必须用英文半角。
3、在博客中设置301的方法
这边以Z-Blog为例详细介绍一下:
1.复制如下代码,将代码中“###.com”改成你自己的网址即可。
if request.ServerVariables("SERVER_NAME")="###.com" then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.###.com"
Response.End
end if
2.进入Z-Blog后台,打开“文件管理”界面。
3.找到并打开网站根目录下的 default.asp 文件。
4.将以上代码加进 default.asp 在下图中红框所示位置。
301永久重定向
5.最后确定无误点击 提交 保存。
在Unix/Linux主机上设置的方法
可以用.htaccess文件
1. Apache模块 mod_alias的 Redirect 和 RedirectMatch命令
上面提到2个命令使用方法相似。而区别就是后者RedirectMatch基于正则表达式匹配对当前的URL发送一个外部重定向语法为:
Redirect [status] URL-path URL
RedirectMatch [status] regex URL
status参数可以使用以下HTTP状态码:
permanent
返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的。
temp
返回一个临时性重定向状态码(302),这是默认值。
seeother
返回一个“参见”状态码(303),表示此资源已经被替代。
gone
返回一个“已废弃”状态码(410),表示此资源已经被永久性地删除了。如果指定了这个状态码,则URL参数将被忽略。
举例:
APACHE
Redirect 301 /old/old.htm http://www.###.com/new.htm
Redirect permanent /one http://###.com/two
RedirectMatch 301 (.*).gif$ http://www.###.com/images/$1.jpg
2.使用mod_rewrite重写URL方式
APACHE
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^####.comRewriteRule ^(.*)$ http://www.###.com/$1 [R=permanent,L]
在这里判断当前服务器变量HTTP_HOST是否等于###.com,为真就进行重写,按照R=permanent进行永久重定向,L表示并立即停止重写操作,并不再应用其他重写规则
下面是最终实现的.htaccess文件,同时也并入wordpress重写规则。
APACHE
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
#Redirect
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^###.com$
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(.*)$ http://www.###.com/$1 [R=301,L]
#Rewrite(blog)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog/.* /blog/index.php [L]
RewriteRule . -
</IfModule>
# END WordPress
运作流程
编辑
让我们先来了解一下用户,搜索引擎和网站一开始的交互流程。当用户或搜索引擎向一个网站服务器发出网页浏览请求时,该服务器将:
1.通过域名服务器(DNS)将域名转换为网站的IP地址,然后返回给客户
2.打开一个该IP套接口连接
3.记下通过该套接口的一个HTTP数据流
4.从WEB服务器接收一个响应请求的HTTP数据流,该数据流包含状态码,状态码的值由HTTP协议所决定。这里所说的“HTTP数据流”信息也叫“头信息(Header)”。头信息中包括了日期,服务器类型,通常还会有一条“200 OK”信息。如果一切良好,那么网络服务器就会将“200 OK”信息以及请求页面发送出去。如果网站在这时候已经建立了重定向,那么服务器就会在头信息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信息。搜索引擎会根据服务器头信息中的内容作出决定。
301永久重定向对SEO无任何不好的影响,而且网页A的关键词排名和PR级别都会传达给网页B,网站更换了域名,表示本网页永久性转移到另一个地址,对于搜索引擎优化|SEO来说,给搜索引擎一个友好的信息,告诉它此页面已永久重定向,避免搜索引擎找不到页面。
什么情况下使用301重定向
1:网站更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量损失和SEO。
2:当出于需要删除网站中的某些目录时,比如我要删除我博客下的博客导航,这时就可以用301永久重定向到网站首页。
3:如果你有多个闲置域名时需要指向同一网站时,通过301永久重定向可以实现。
4:你打算实现网址规范化。
教程链接:
网页链接
也称为301重定向。301跳转。301转向是用户浏览器或搜索引擎蜘蛛向网站服务器发出访问网址A的请求时,服务器返回的http数据头信息状态码的一种,表示所请求的网址A永久性地转移到另一个网址B.301转向是搜索引擎友好的转向,网址A的权重和pr值将会被转移到网址B。所以当网站上有网址变动时,建议使用301转向。希望回答对你有所帮助欢迎分享,转载请注明来源:夏雨云
评论列表(0条)