很多朋友对于用于搜索引擎优化的域名301 重定向完整指南和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
首先我们需要了解什么是301重定向。 301重定向(或称301跳转、301重定向)是当用户或搜索引擎蜘蛛向网站服务器发出访问请求时,服务返回的HTTP数据流中的头信息(header)中的状态码,表明此URL是永久的。性转移到另一个地址。其他常见的状态代码包括: 200(表示一切正常); 404(网页不存在); 302(临时重定向); 500(内部程序错误)。除了301重定向之外,URL重定向还有其他方法,如302重定向、JavaScript重定向、PHP/ASP/CGI程序重定向、Meta Refresh等。301重定向在搜索引擎优化中发挥着不可替代的作用。使用301 重定向来整合URL 的规范版本、重新获得权威并防止搜索结果中出现重复内容。从搜索引擎优化的角度来看,301重定向是最可行的URL重定向方式。
其次,我们需要知道什么时候使用301重定向。网站改版经常需要使用301重定向:例如网站更改域名、更改网页目录结构、网页移动到新地址、网页扩展名更改,例如需要更改.php到.html。这种情况下,如果不做重定向,用户收藏夹或搜索引擎数据库中的旧地址只会让访问的客户得到404页面错误信息,访问流量就会白白流失。
实现URL 规范化还需要301 重定向
假设有以下URL:
http://www.abc.com/index.html
http://abc.com
http://abc.com/index.html
如果您进行301重定向到http://www.abc.com(所选的标准化URL),搜索引擎就会知道http://www.abc.com是标准化URL,并将上面列出的URL权重转移到标准化URL。
目前Google会传递大部分权重,但不是100%的权重。百度将传递所有权重。谷歌需要1到3个月的时间来识别、响应并完成301的权重转移。百度在处理301方面相对保守,新旧网址会同时在数据库中长期存在。
我们来看看Apache服务器是如何实现301重定向的。
如果网站使用LAMP(Linux + Apache + MySQL + PHP)主机,可以使用Apache的mod_rewrite来重写或重定向URL。需要执行以下步骤:
A. 首先确保mod_rewrite功能已打开。使用文本编辑器打开Apache安装目录\conf\httpd.conf,找到“#LoadModule rewrite_module module/mod_rewrite.so”这一行,去掉前面的“#”。继续查找“AllowOverride None”并将其更改为“AllowOverride All”。然后,重新启动Apache。
B. 将.htaccess 文件放置在您需要将URL 重定向到的网站的根目录中。文件名是.htaccess。不能直接在Windows下创建。您可以使用记事本将其另存为。
C.通过.htaccess中的正则表达式重定向到所需页面。
301将不带www的顶级域名重定向到带www的域名
选项+FollowSymLinks
重写引擎
RewriteCond %{HTTP_HOST} ^abc.com [NC]
重写规则^(.*)$ http://www.abc.com/$1 [L,R=301]
将301页面重定向到另一个页面
选项+FollowSymLinks
重写引擎
RewriteRule ^/oldpage.html$ /newpage.html[NC,L,R=301]
接下来我们看看如何在IIS服务器下设置301重定向。
示例:将abc.com 跳转到www.abc.com
A、新建站点,对应目录如d:\site。该站点主要用于重定向,目录可以为空,不需要任何文件。然后绑定需要重定向的域名abc.com,如图1所示。
图1 设置301重定向
B、在IIS中选择我们刚刚创建的站点,右键,属性,主目录,选择重定向到,输入www.abc.com域名绑定的另一个网站地址(网站内容存放在这个网站下)。输入的地址是:
http://www.abc.com$S$Q,并确保选择以下两个选项:“资源的永久重定向选项”和“上面输入的确切URL”。如图2所示。
图2 设置301重定向
对于$S$Q字符,这里有一个解释:$S将请求的URL的后缀传递给新的URL。后缀是原始URL被重定向URL替换后保留的部分。如果未选择“上面输入的精确URL”选项,则生成的目标URL 的名称将包含所请求文件的名称(作为文件夹名称)以及文件名本身。
$Q 将参数从原始URL(例如查询字符串参数)传递到新URL,包括问号(?)。如果不加$S$Q字符,内页的301会跳转到首页。添加$S$Q字符的目的是让内页也能准确跳转到新域名对应的内页。好了,这样就完成了301永久重定向的设置。设置好之后最好测试一下301重定向是否成功。您可以使用站长工具的HTTP状态工具(http://tool.chinaz.com/pagestatus/)来查看。如果返回的状态为301,则说明已经成功。
除了上述方法之外,我们还可以使用ISAPI_Rewrite来实现IIS 301重定向。 ISAPI_Rewrite 是IIS 的第三方URL 重写组件。它基于正则表达式,类似于Apache mod_rewrite 函数。不仅可以实现URL重写,还可以实现301重定向。 ISAPI_Rewrite 组件有免费版本(Lite)和商业版本(Full)。免费版仅支持全局httpd.conf配置,无法针对每个站点单独设置,而商业版允许每个站点自定义URL重写规则,只要将httpd.ini放在站点根目录下即可生效。请使用ISAPI_Rewrite 2.x或最新的3.0版本(兼容Apache的mod_rewrite语法),而早期的1.x版本不支持301重定向功能。
举例如下:
A.301将不带www的顶级域名重定向到带www的域名
# ISAPI_Rewrite 2.x 版本
[ISAPI_重写]
# 3600=1 小时
缓存时钟速率3600
重复限制32
RewriteCond Host: ^abc.com\.com$
重写规则(.*) http://www.abc.com$1 [I,RP]
# ISAPI_Rewrite 版本3.0
[ISAPI_重写]
# 3600=1 小时
缓存时钟速率3600
重复限制32
RewriteCond %{HTTP:Host} ^abc.com\.com$
重写规则(.*) http://www.abc.com$1 [NC,R=301]
B.不同域名之间的301重定向
# ISAPI_Rewrite 2.x 版本
[ISAPI_重写]
# 3600=1 小时
缓存时钟速率3600
重复限制32
RewriteCond 主机^www\.test10000\.com$
重写规则(.*) http://www.abc.com$1 [I,RP]
# ISAPI_Rewrite 版本3.0
[ISAPI_重写]
# 3600=1 小时
缓存时钟速率3600
重复限制32
RewriteCond %{HTTP:Host} ^www\.test10000\.com$
重写规则(.*) http://www.abc.com$1 [NC,R=301]
C.将301页面重定向到另一个页面
# ISAPI_Rewrite 2.x 版本
[ISAPI_重写]
# 3600=1 小时
缓存时钟速率3600
重复限制32
RewriteRule ^/oldpage.html$ /newpage.html[I,O,RP,L]
# ISAPI_Rewrite 版本3.0
[ISAPI_重写]
# 3600=1 小时
缓存时钟速率3600
重复限制32
RewriteRule ^/oldpage.html$ /newpage.html[NC,L,R=301,O]
301重定向也可以在Web后台程序中实现。如果页面是ASP/PHP/JSP/ASP.NET,可以在后台代码中做301重定向。不过,CRAZYSEO工程师并不建议这样做,因为在你的页面执行之前,在服务器上进行301跳转就开始了,这样效率很高。要在程序代码中做301,需要在每个页面的头部添加重定向代码,比较麻烦。
示例如下
A.PHP下的301重定向
?
Header(‘HTTP/1.1 301 永久移动’);
标头(‘Location: http://www.abc.com’);
?
B.ASP下的301重定向
%@ 语言=VBScript %
%
Response.Status=’301 永久移动’
Response.AddHeader ‘位置’, ‘http://www.abc.com’
%
ASP .NET 下的C.301 重定向
脚本runat=’服务器’
私人无效Page_Load(对象发送者,System.EventArgs e)
{
Response.Status=’301 永久移动’;
Response.AddHeader(‘位置’, ‘http://www.abc.com’);
}
/脚本
D.JSP下的301重定向
%
响应.setStatus(301);
response.setHeader(‘位置’, ‘http://www.abc.com’);
response.setHeader(‘连接’, ‘关闭’);
%
Tips:如果返回头中只有Location,但没有明确提及状态码,则表示302临时重定向。请记住这一点。例如,以下都是302重定向:
PHP下的302重定向
?
php header(‘Location: http://www.abc.com’);
?
Asp下的302重定向
%
响应.重定向’http://www.abc.com/’
%
ASP.NET 302 重定向
脚本runat=’服务器’
私人无效Page_Load(对象发送者,System.EventArgs e)
{
Response.Redirect(‘http://www.abc.com’);
}
/脚本
JSP下的302重定向
%
response.sendRedirect(‘http://www.abc.com’);
%
总结:301重定向是对搜索引擎最友好的URL重定向方式。在众多重定向技术中,301永久重定向是最安全的方法,也是最理想的解决方案。无论是URL的永久改变,还是多种格式的URL规范化,301重定向都是不可或缺的。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/106071.html
用户评论
满心狼藉
终于找到一本关于域名的攻略了,以前一直不懂怎么处理域名跳转的问题,这篇文章讲解得很清楚,下一步就实践起来!
有8位网友表示赞同!
入骨相思
说起来301重定向我是个渣渣,感觉操作复杂,没勇气尝试,看了你这篇攻略后感觉可以试试看,毕竟网站用户体验确实很重要
有19位网友表示赞同!
陌上蔷薇
搜索引擎优化知识真多,以前只知道SEO关键词就够了,没想到域名也有那么多学问!这篇文章把301重定向的原理和步骤都写得明白,下次再遇到这种情况就知道如何操作了。
有5位网友表示赞同!
安之若素
我之前因为网站迁移而做了301重定向,还好没有出现什么负面效果,但还是觉得这篇文章讲得很有道理,很多细节需要注意,以后我会更加谨慎地处理
有14位网友表示赞同!
在哪跌倒こ就在哪躺下
感觉这篇攻略写的像教科书一样,详细到每一个步骤都交代清楚。对SEO入门的小白们很友好,我以前完全没了解过301重定向的原理。
有19位网友表示赞同!
话少情在
我最近想更换网站域名,这篇文章正好帮到我了!301重定向绝对不能忽视,感谢作者分享这么有价值的知识!
有11位网友表示赞同!
微信名字
我觉得文章内容不错,但对于一些专业的链接策略建议可以补充一下,比如如何在301重定向中考虑用户体验和蜘蛛池等方面的问题。
有7位网友表示赞同!
在哪跌倒こ就在哪躺下
这篇文章确实详细解说了301重定向的全过程,但有些技术细节还是比较专业,对于不太了解服务器配置的读者来说可能有点难理解。
有19位网友表示赞同!
采姑娘的小蘑菇
网站迁移是必不可少的,有了这篇攻略,我彻底明白如何正确地用301重定向来保证流量和用户体验,真是太棒了!
有10位网友表示赞同!
墨染天下
我觉得这篇文章更适合已经有一定的SEO基础的人阅读,对于初学者来说,有些地方还是需要进一步的解释和举例说明。
有15位网友表示赞同!
恰十年
我之前也学过301重定向,不过这篇攻略把很多细节都提了出来,让我对这个技术有了更深层次的理解,非常感谢分享!
有8位网友表示赞同!
あ浅浅の嘚僾
这篇文章介绍的很全面,从域名策略到重定向工具都有描述。但对于一些复杂的案例分析,可以加入更多数据和实测结果,更能帮助读者理解301重定向带来的实际效益。
有11位网友表示赞同!
失心疯i
最近我的网站流量下滑了,怀疑可能是域名问题导致的,这篇攻略让我看到了希望!一定要试试看301重定向能不能恢复流量。
有17位网友表示赞同!
雨后彩虹
我觉得这篇文章的价值在于它把很多看似复杂的技术都用通俗易懂的语言进行了解释,非常适合新手学习SEO。
有6位网友表示赞同!
糖果控
搜索引擎优化真的越来越专业了,这篇攻略让我明白,即使是域名选择和重定向都需要认真对待!太感谢作者分享了这么宝贵的知识!
有19位网友表示赞同!
刺心爱人i
我之前尝试过301重定向,结果效果不理想,看了这篇文章后明白了原因是因为操作步骤没有完全遵循。下次我会按照文中步骤来操作试试看。
有8位网友表示赞同!