.htaccess301重定向的折腾

两天 综合分类3131.8K3字数 7282阅读24分16秒阅读模式

最近一直为换域名导致的不良后果而心烦,之前也曾把那个2dys.org.ru取消解析,使之与现在的2days.org完全没有了关系,但是仍然没有摆脱被百度干掉的惨剧,唉。。。

到了现在,Google的收录似乎已经恢复了,而百度。。。文章源自两天的博客-https://2days.org/1322.html

htaccess301文章源自两天的博客-https://2days.org/1322.html

很揪心啊,唉文章源自两天的博客-https://2days.org/1322.html

这两天又把之前的域名解析了,做了一下重定向和防盗链,以后慢慢来吧。文章源自两天的博客-https://2days.org/1322.html

分享个301重定向代码

301重定向代码如下:文章源自两天的博客-https://2days.org/1322.html

  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} ^win7xx.cn$ [OR]
  3. RewriteCond %{HTTP_HOST} ^www.win7xx.cn$
  4. RewriteRule ^/?$ "http\:\/\/www\.linuxzj\.com" [R=301,L]

要是你换米(域名)了,就用下面的文章源自两天的博客-https://2days.org/1322.html

  1. Options +FollowSymLinks
  2. RewriteEngine on
  3. RewriteCond %{HTTP_HOST} ^2days.org.ru [NC]
  4. RewriteRule ^(.*)$ http://2days.org/$1 [L,R=301]

附:301重定向简介:文章源自两天的博客-https://2days.org/1322.html

重定向说白了就是通过各种的方法将各种网络请求重新定个方向转到其它位置。文章源自两天的博客-https://2days.org/1322.html

如:网页中的重定向文章源自两天的博客-https://2days.org/1322.html

域名的重定向文章源自两天的博客-https://2days.org/1322.html

路由选择的变化也是对数据报文经由路径的一种重定向

在我们的网站淘星建设中,时常会遇到需要网页重定向的情况:像网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。

常用的重定向方式有: 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 /index.php http://www.bloghuman.com/index.php?go=category_6(将网页index.php重定向到http://www.bloghuman.com/index.php?go=category_6)

通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站Apache手册。

PHP下的301重定向

  1. <?php  
  2. Header("HTTP/1.1 301 Moved Permanently");  
  3. Header("Location: https://2days.org");  
  4. ?>  

ASP下的301重定向

ASP .NET下的301重定向

ColdFusion下的301重定向

  1. <.cfheader statuscode="301" statustext="Moved permanently">
  2. <.cfheader name="Location" value="http://www.2008sili.com">

旧域名重定向到新域名
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。

记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件

  1. Options +FollowSymLinks
  2. RewriteEngine on
  3. 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文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件

  1. Options +FollowSymlinks
  2. RewriteEngine on
  3. rewritecond % ^domain.com [nc]
  4. 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

网站302重定向使用不当导致被GOOGLE惩罚

Business.com是网上最大的商业搜索引擎和分类目录,以专业提供商业信息而享负盛名,包括近19万网页。若以“business”为关键词在Google中进行搜索,该网站名列第一。不过在9月5日,Business.com遇到一件蹊跷之事:它的首页由PR8变成了PR0, 而且Google搜索结果中找不到首页。好在被“蒸发”的只是首页,不过庆幸的是第二天首页又回到了Google的搜索结果,但PR仍旧为0。

Business.com的问题出在它的重定向命令上。该网站让business.com跳转到www.business.com,这种重定向本该是永久性的。我们知道,301属于永久性重定向,而302则属于临时性重定向,只有当一个网站或网页在24到48小时之内临时移到其它位置的情况下才能使用该命令。但Business.com却错误地使用了“HTTP/1.1302 Object Moved”状态码。

其实网站重定向极为普遍,譬如不满意原来的域名而申请了一个新域名;买下容易被人错拼的域名,防止客户因为拼错URL而找不到网站,等等。可是,很多人却会由于使用了错误的重定向状态码而遭“灭站之灾”,就象Business.com。尽管他们的重定向理由充分合理,然而若使用不当,则可能被Google误认为是利用多个域名指向同一网站,那么你的网站就会被封掉,罪名是“利用重复的内容来干扰Google搜索结果的网站排名”。Business.com就是最好的前车之鉴。只不过大多数使用错误重定向参数的网站没Business.com这么幸运,一个小小的重定向就可能使网站前功尽弃,只能从头来过:重新申请新域名,重新发布新网站,等等。记住:Google绝不会同情任何人即使无心犯下的错误。

网站服务器响应网页浏览请求的运作流程

让我们先来了解一下用户/搜索引擎和网站一开始的交互流程。当用户或搜索引擎向一个网站服务器发出网页浏览请求时,该服务器将:

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文件中体现出来,形如:


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重定向:

代码在上面已经介绍过了

资深SEO专家Dan Thies的看法和建议

对于Business.com所遭遇的问题Dan Thies深有体会,因为他也有过类似的遭遇。他的网站上有一个会员跟踪脚本,其中一个会员的站点通过302命令映射到这个跟踪脚本,而这个跟踪脚本又是通过302映射到他的主页。当在Google中用“keyword research”进行搜索,他的主页排名在前十位,然而地址显示的却是那个会员的网址。结果使他哭笑不得:访问者通过Google搜索结果进入他的网站,而他却不得不为这些访问量给那个会员支付报酬! 后来他用robots.txt文件禁止Spiders跟踪访问他的会员跟踪脚本才算解决了问题。

对于Business.com,Dan Thies认为:“目前Google在302重定向"的处理上还存在一定的问题,但并不表示Google不允许302重定向。Business.com并未遭封或遭到惩罚,它们只是返回了错误的响应。”

Dan Thies建议:如果使用了跟踪URL/脚本,又必须让访问者重定向到某一着陆页,那么一定要在robots.txt文件中禁止Spiders去访问第二个重定向。如果没有对跟踪URL/脚本进行重定向,而只是把另外一个URL上的内容给复制过来,那么应在robots.txt文件中禁止Spiders去访问跟踪URL,以防因内容重复而遭搜索引擎惩罚。

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上了。好了,大功告成! 就这么容易!

最后我的.htaccess文件如下:

  1. Options +FollowSymLinks
  2. RewriteEngine on
  3. RewriteCond %{HTTP_HOST} ^2days.org.ru [NC]
  4. RewriteRule ^(.*)$ http://2days.org/$1 [L,R=301]
  5. # BEGIN WordPress
  6. RewriteEngine On
  7. RewriteBase /
  8. RewriteCond %{REQUEST_FILENAME} !-f
  9. RewriteCond %{REQUEST_FILENAME} !-d
  10. RewriteRule . /index.php [L]
  11. RewriteCond %{HTTP_REFERER} !^$ [NC]
  12. RewriteCond %{HTTP_REFERER} !2days.org [NC]
  13. RewriteCond %{HTTP_REFERER} !2days.org.ru [NC]
  14. RewriteCond %{HTTP_REFERER} !youdao.com [NC]
  15. RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
  16. RewriteCond %{HTTP_REFERER} !wqcyr.com [NC]
  17. RewriteCond %{HTTP_REFERER} !facebook.com [NC]
  18. RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
  19. RewriteCond %{HTTP_REFERER} !google.cn [NC]
  20. RewriteCond %{HTTP_REFERER} !google.com [NC]
  21. RewriteCond %{HTTP_REFERER} !google.com.tw [NC]
  22. RewriteCond %{HTTP_REFERER} !google.com.sg [NC]
  23. RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
  24. RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
  25. RewriteCond %{HTTP_REFERER} !mail.qq.com [NC]
  26. RewriteCond %{HTTP_REFERER} !cn.bing.com [NC]
  27. RewriteCond %{HTTP_REFERER} !baidu.com [NC]
  28. RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
  29. RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
  30. RewriteCond %{HTTP_REFERER} !cnbeta.com [NC]
  31. RewriteCond %{HTTP_REFERER} !bing.com [NC]
  32. RewriteCond %{HTTP_REFERER} !g.cn [NC]
  33. RewriteCond %{HTTP_REFERER} !soso.com [NC]
  34. RewriteCond %{HTTP_REFERER} !qq.com [NC]
  35. RewriteRule .(jpg|png|bmp|swf|jpeg)$ /img/dao.gif [R,NC,L]
  36. END WordPress

PS:

似乎301重定向规则要写在.htaccess文件的最前面,如我的.htaccess文件所写。

本站文章大部分始于原创,用于个人学习记录,可能对您有所帮助,仅供参考!

weinxin
312379857
←QQ扫一扫添加QQ好友
版权声明:本站原创文章转载请注明文章出处及链接,谢谢合作!
广告也精彩
 最后更新:2016-1-13
  • 重定向
  • 解析
  • .htaccess
  • 域名
  • 301
评论  31  访客  16  作者  15
    • 懿古今
      懿古今 2

      我第一次折腾的时候就是把代码放在最下面,结果怎么弄都没起作用,后来才知道是要把代码放在最前面

      • 为了明天
        为了明天 9

        我折腾了半天还是不行啊,求教~

          • 两天
            两天

            @ 为了明天 你想做什么的啊?这个没问题的

              • 为了明天
                为了明天 9

                @ 两天 我直接把代码复制上来吧 反正我也不懂代码下面是htaccess里面原有的代码,我在里面加了301重定向的两条,想把tianmeixi.net跳转到www.tianmeixi.net——————————————————————————————————# Helicon ISAPI_Rewrite configuration file# Version 3.1.0.67RewriteEngine onRewriteCond %{http_host} ^tianmeixi.net [NC]RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ http://www.tianmeixi.net/$1 [L,R=301]RewriteRule ^index$ index.php [QSA,L]RewriteRule ^welcome$ index.php [QSA,L]RewriteRule ^links$ link.php [QSA,L]RewriteRule ^invite$ invite.php [QSA,L]这个代码错了么?求解 每次上传覆盖后,都提示500内部服务器错误,老大求解决~

                  • 两天
                    两天

                    @ 为了明天 301用下面的就行RewriteEngine onRewriteCond %{HTTP_HOST} ^tianmeixi.net [NC]RewriteRule ^(.*)$ http://www.tianmeixi.net/$1 [L,R=301]

                      • 为了明天
                        为了明天 9

                        @ 两天 3Q

                          • 两天
                            两天

                            @ 为了明天 如何了?

                              • 为了明天
                                为了明天 9

                                @ 两天 代码还是那个代码,我在我同学的电脑上编辑就可以,自己的电脑就不行。。。奇怪。。。

                    • simpleseo
                      simpleseo 0

                      做个记录,说不定哪天就用上了。

                      • zchiy2k
                        zchiy2k 1

                        感觉好麻烦啊,不过还是应该学习一下,万一哪天用上了呢,呵呵

                        • 郑州seo-甜甜
                          郑州seo-甜甜 3

                          好长啊,看不是太懂

                          • Leyond
                            Leyond 4

                            我没用这个。不过google管理工具那里显示我很多文章重定向有问题

                            • 灰太狼
                              灰太狼 1

                              真的好详细啊!

                              • 泡MM
                                泡MM 1

                                好详细啊,你终于搞定了。

                                  • 两天
                                    两天

                                    @ 泡MM @泡MM, 囧 原来是米沙 你咋泡妹妹了呢。。。。 :?:

                                  • 永恒之塔
                                    永恒之塔 0

                                    不敢贸然更换!~

                                    • 匿名
                                      匿名 9

                                      好长哇,转向好麻烦勒

                                        • 两天
                                          两天

                                          @ 匿名 @, 恩,其实弄好了也不麻烦。

                                        • su
                                          su 5

                                          收藏了,下次需要在问你啊
                                          我更新主题啦,欢迎访问

                                            • 两天
                                              两天

                                              @ su @su, 呵呵 看到你的主题了啊,和米沙的一样呢。 :)

                                            • Junan
                                              Junan 6

                                              百度显示0是正常的~~我之前换了域名一个多月才有收录~~慢慢来吧~

                                                • 两天
                                                  两天

                                                  @ Junan @Junan, 只有这样了,哎,挺郁闷的。 :(

                                                • 绝版黑色
                                                  绝版黑色 3

                                                  学习了, 我感觉我的域名迟早也要更换.

                                                匿名

                                                发表评论

                                                匿名网友
                                                :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
                                                确定

                                                拖动滑块以完成验证