301重定向是每个做优化的小伙伴都会遇到的问题,用的好的话网站排名可以提升,用的不好的话网站没有排名,本文从什么是301重定向?如何做301重定向?什么时候应该使用301?做301重定向的注意事项?301和302的区别是什么这些方面给大家好好聊聊301重定向,希望本文对大家有帮助。
一 什么是301重定向
当站长想要在网页内容不变的情况下,将其从一个URL转移到另一个url上,就可以使用301重定向。随之转移的还有页面权重,流量,搜索引擎的索引也会对其更新。
三 如何做301重定向
①:虚拟主机
Linux虚拟主机设置301跳转方法:
在本地新建一个文本文件,最好用的专业的编辑器软件如EditPlus 将代码粘入
RewriteEngine On RewriteCond %{HTTP_HOST} !^http://www.easyqi.cn$ [NC] RewriteRule ^(.*)$ http://www.easyqi.cn/$1 [R=301,L]
说明:上述规则是将站点所以访问域名都重定向到www.easyqi.cn(规则中的域名请修改为自己的域名),如果仅想将绑定在站点上某个域名(如:www.123.com)重定向到www.easyqi.cn,规则如下:
RewriteCond %{HTTP_HOST} ^http://www.123.com$ [NC] RewriteRule ^(.*)$ http://www.easyqi.cn/$1 [R=301,L]
如果有多种需求,如http://easyqi.cn跳转到www.easyqi.cn qwe.com跳转到www.qwe.com,规则如下:
RewriteEngine On RewriteCond %{HTTP_HOST} ^http://easyqi.cn$ [NC] RewriteRule ^(.*)$ http://www.easyqi.cn/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^http://qwe.com$ [NC] RewriteRule ^(.*)$ http://www.qwe.com/$1 [R=301,L]
根据自己的需要进行添加修改,然后上传到服务器wwwroot目录,改名为.htaccess即可
win虚拟主机设置301跳转方法:
手动设置的(没有自动生成)
1、进入主机控制面板,进入ISAPI筛选器设置,点击"开启自定义URL静态化支持"按钮。
2、待开启伪静态功能后,进入FTP文件管理,找到\others\discuz\httpd.conf 修改这里面的规则。
3、示例代码:
RewriteCond %{HTTP:Host} ^http://easyqi.cn$ RewriteRule (.*) http://www.easyqi.cn$1 [NC,R=301]
#第一条表示要做跳转的域名,第二条表示要跳转到的域名
#如果有很多域名要做跳转,那么可以将第一条规则改为
RewriteCond %{HTTP:Host} !^http://www.easyqi.cn$
这样,就表示非www.easyqi.cn的域名访问都会跳转到www.easyqi.cn #多个域名做跳转的第二种方法是,首先复制多个 RewriteCond 项,将域名改好 除了最后一项,其余的 RewriteCond 项最后都要加个参数 [OR]即可。
注意:现在很多虚拟主机都自带301的配置,可以在主机控制面板上生成代码信息,然后按照上面的提示进行301重定向。
②:window独立服务
Win独立服务301设置(win2003、win2008):
1、IIS服务器实现301重定向
打开IIS,右键-属性-网站-IP地址那里点编辑增加一个站点,然后绑定一下主机头,也可以绑定更多的闲置域名。
打开IIS,首先新建立一个站点,随便对应一个目录E:\wwwroot\301web。该目录下只需要2个文件,一个 default.html,一个404.htm。在欲重定向的网页或目录上按右键;选中“重定向到URL”;在对话框中输入目标页面的地址;切记,记得选 中“资源的永久重定向”;然,最后要点击“应用”,完成。
③:Linux独立服务器
Linux独立服务器301设置(红帽企业版、centos):
我用的是红帽企业版,用的是源码包装的Web环境。然后我进入Linux服务器,找到apache的主配置文件 httpd.conf , 我的apache服务器下有多个虚拟主机,我找到我要做301重定向的虚拟主机,然后添加如何的代码(代码是完整的):
1、进入Linux服务器,然后找到httpd.conf的Apache 主配置文件,下图红色框是我所在的完整位置,蓝色框是内容,也就是命令pwd现实所在位置,ls查询当前位置的内容。
既然找到主配置文件了,我们通过命令vi httpd.conf 编辑一下,在最后添加如下完整的代码。要找到配置的那个虚拟主机然后添加代码, 不要乱添加。
ServerName www.easyqi.cn ServerAdmin webmaster@dummy-host.example.com LogLevel warn ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common ServerName http://easyqi.cn ServerAdmin webmaster@dummy-host.example.com RewriteEngine on RewriteRule ^(.*)$ http://www.easyqi.cn$1 [R=301,L] LogLevel warn ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common
注意:不同形式安装的apache 其路径是不同的,有源码包、有YUM等安装方式,两种马路是不一样的,建议新手联系空间商并实施301重定向。
④:绑定/本地DNS
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
⑤:DNS服务器的设置
若要将http://blog.easyqi.cn指向www.easyqi.cn,则只需在DNS服务中应增加一个别名记录,可写成:blog IN CNAME www.easyqi.cn。
如需配置大量的虚拟域名,则可写成:* IN CNAME www.easyqi.cn.
这样就可将所有未设置的以http://easyqi.cn结尾的记录全部重定向到www.easyqi.cn上。
二 什么时候应该使用301
1.网站url改版
当网站需要大面积修改URL而内容不变,就可以使用301重定向,将原本网页的权重和流量一起转移
2.删除旧页面
网站上存在的一些过期页面可能依然还有流量和权重,那就可以使用301重定向,将旧页面定位到新页面上
3.网站url不规范
网站默认的url通常包括以下几种
http://easyqi.cn http://www.easyqi.cn http://easyqi.cn/index.html http://www.easyqi.cn/index.html
但是为了网址的规范化和权重的集中,应该保证全站只有一种url格式。如果其他格式的url被搜索引擎收录,就需要将不规范网站301重定向到规范网址上。
四 做301重定向的注意事项
当301重定向实施完之后,旧版本页面跳转到了新版本页面,或网址规范化了再或者其他的,大部分的站长都不会注意到301的HTTP状态是否返回成功。就在此时,可能有些网站的301重定向不传递状态或者出现404错误的状态码,这样容易造成任何情况下做的301重定向无法达到效果。笔者认为,想要正确的、有效果的做301重定向,一些细节还是需要注意的。
例如:404错误(页面未找到)或者200 OK(页面成功加载);301(返回301状态码成功)
总结上述需要注意:如果遇到这种情况也是一个被重视的问题,所以要避免这样的问题发生,如果站长在做301永久重定向后,一定要确保HTTP状态是返回301,如果HTTP状态码不是返回的301状态码而是200或404再或者是其他的状态码,那么301重定向应该未操作成功,建议站长检查是哪点出的问题然后解决。
301永久重定向首页索引文件,如何避免出现循环
做优化的站长都应该知道,绝大部分网站的首页URL都是以http://www.easyqi.cn/index.html的形式表现,但一般都是输入http://www.admin5.cn/访问首页。而此时首页出现了两个的版本的URL,给网站带来的影响则是分散链接权重。可能有站长会想到网址规范化。是的,没错,通过网址规范化即可实现一个标准的URL表现形式。
大部分的站长看到这种情况都会通过301永久重定向将http://www.easyqi.cn/index.html重定向到http://www.admin5.cn/上,然后通过301永久重定向修复URL。但是,如果站长没有正确的实施301重定向,通常301重定向的问题会扩大,比如出现死循环现象。
默认文档重定向解决方案:
①:将index.php的内容复制到另外一个文件,比如a.php文件。
②:为文档目录创建一个Apache DirectoryIndex 指令,将该质量的目标设置为a.php,不要在全服务器级别上设置该指令;否则,它可能造成其他仍然需要使用index.php作为目录索引的文件夹的问题。
③:在文档根目录下的.htdaccess文件中放入:DirectoryIndex a.php 或者,如果不使用各个目录中单独的上下文文件,可以在.htdaccess中放入以下内容:DirectoryIndex a.php
④:清除原始index.php文件内的内容,插入如下代码:
总结上述需要注意:这样的设置让index.php不再是目录索引文件,也就是默认文件名。它在用户输入规范URLhttp://www.easyqi.cn/时会强制读取a.php,那么任何从旧链接到index.php的请求现在都进行了301重定向然后避免无限循环
六 301重定向和302重定向的区别
重定向的方法其实是有很多的,但不同的方法会出现不同的结果,而且区别也是非常大的。目前,根据WEB服务器返回给浏览器的HTTP状态码,重定向主要分为301永久重定向、302临时重定向,两种重定向是根据不同情况来做的,下面就详细的对两种重定向详细的说明一下。
①:301永久重定向
首先,301永久重定向。这个状态码告诉用户、搜索引擎、浏览器,该资源已经永久性的移动到另一个位置(旧版本页面永久重定向到新版本页面),而且没有恢复原位的打算。301永久重定向最适合目录转移,推荐使用301重定向!
②:302临时重定向
然后,302临时重定向。这个状态码告诉用户、搜索引擎、浏览器,该资源已经暂时性的移动到另外一个位置(旧版本页面临时重定向到新版本页面),这种移动不会当作永久性,而且会恢复原来的位置,但一些情况下适合使用302重定向。
302重定向对手机站优化是有一定的好处,百度官方给的建议:比如减少内容死链,如果没有内容,最好通过HTTP状态码指定,如404、403等;如果内容死链希望重定向到首页,最好通过302跳转,不要使用javascript跳转。此时可以发现302重定向对手机站优化是有好处的。
注意:两种形式的重定向都会将用户、搜索引擎发送到新的位置(页面),但搜索引擎对待这两个HTTP状态码却不同。当搜索引擎看到301状态码的时候,会判断旧版本页面将权重或任何其他的指标永久转移到新页面。当搜索引擎看到302HTTP状态码的时候,会假设它不应该将旧页面的历史链接跟权重转移到新的页面,意思是转移后还是会转移回来的。另外,如果做301永久重定向,会导致搜索引擎从索引上(百度、谷歌)删除旧页面并用新页面代替。