整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          搜索引擎優化之域名301重定向完整攻略

          SEO過程中我們會遇到這樣的問題:想同時將幾個域名都綁定到服務器,但是又怕權重分散。網站做了一段時間后覺得域名不夠理想,想更換域名,卻又擔心更換后權重消失。大家也一定了解到能通過301重定向解決這些問題,但是301重定向的操作方法卻又重說紛紜,我們不知道到底使用怎么樣的方法才能讓權重集中或者在更換域名后讓權重順利的轉移過來。下面CRAZYSEO工程師將常用的301重定向方法做了全面的總結,供大家參考。

          首先我們需要了解什么是301重定向。301重定向(或叫301跳轉、301轉向)是用戶或搜索引擎蜘蛛向網站服務器發出訪問請求時,服務返回的HTTP數據流中頭信息(header)部分狀態碼的一種,表示本網址永久性轉移到另一個地址。其他常見的狀態碼還包括:200(表示一切正常);404(網頁不存在);302(臨時性轉向);500 (內部程序錯誤)。除了301轉向,網址轉向還有其他方法,如302轉向、JavaScript轉向、PHP/ASP/CGI程序轉向、Meta Refresh等。301重定向對搜索引擎優化具有不可替代的作用。用301重定向鞏固規范版本的URL,重拾權重,防止搜索結果的重復內容。從搜索引擎優化角度出發,301重定向是網址重定向最為可行的一種辦法。

          其次我們需要知道什么情況下使用301重定向。網站改版經常需要用到301重定向:如網站更換域名,改變網頁目錄結構,網頁被移到一個新地址,網頁擴展名改變,如因需要把 .php 改成 .html。在這種情況下,如果不做重定向,則用戶收藏夾或搜索引擎數據庫中舊地址只能讓訪問客戶還會得到一個404頁面錯誤信息,訪問流量白白喪失。

          使用301重定向不僅能使頁面實現自動跳轉,告訴用戶你已經換了新的網址了。同時也告訴搜索引擎,這個才是真正的網址,搜索引擎只對重定向后的新網址進行索引,同時又會把舊地址權重如數轉移到新地址下,從而不會讓網站的排名因為網址變更而受到影響。一個網站注冊了多個域名,需要通過301重定向讓訪問這些域名的用戶自動跳轉到其中一個主域名。這樣做是為了避免造成大量復制內容,而遭到搜索引擎懲罰。因為在搜索引擎看來,每個域名都是一個獨立的站,多個域名指向同一站,會被認定為站點雷同,內容復制,輕則不收錄進入沙盒期,重則直接被搜索引擎屏蔽。

          實現網址規范化也需要301重定向

          假設有下面幾個網址:

          http://www.abc.com/index.html

          http://abc.com

          http://abc.com/index.html

          都做301重定向到 http://www.abc.com(選定的規范化網址),搜索引擎就知http://www.abc.com 是規范化網址,而且會把上面列的網址權重傳遞集中到規范化網址。

          目前Google會傳遞大部分權重,但不是百分之百權重。百度會傳遞所有權重。Google對301的識別、反應、完成權重傳遞,需要1~3個月時間。百度對301處理則比較保守,新舊URL會同時存在于數據庫很長時間。

          下來我們來看Apache服務器實現301重定向的方法

          如果網站使用LAMP(Linux + Apache + MySQL + PHP)主機,可以利用Apache的mod_rewrite對URL進行重寫或重定向。需要以下幾步:

          A.首先確保開啟了mod_rewrite功能。用文本編輯器打開Apache安裝目錄\conf\httpd.conf,找到“#LoadModule rewrite_module modules/mod_rewrite.so”這行,去掉前面的“#”。繼續查找“AllowOverride None”,修改為“AllowOverride All”。然后,重啟Apache即可。

          B.在你需要URL重定向的網站根目錄下放一個.htaccess文件,文件名是.htaccess,Windows下不能直接建立,你可以用記事本另存為。

          C.在.htaccess中通過正則表達式重定向到需要的頁面。

          將不帶www的頂級域名301重定向到帶www的域名

          Options +FollowSymLinks

          RewriteEngine On

          RewriteCond %{HTTP_HOST} ^abc.com [NC]

          RewriteRule ^(.*)$ http://www.abc.com/ [L,R=301]

          將頁面301重定向到另外一個頁面

          Options +FollowSymLinks

          RewriteEngine On

          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。

          圖2  設置301轉向

          對于$S$Q字符,這里解釋一下:$S 將請求的URL的后綴傳遞給新的URL。后綴是用重定向的URL 代替之后,初始URL 中所保留的部分。如果未選中 "上面輸入的準確URL" 選項,則結果目標URL 的名稱將具有所請求文件的名稱(作為文件夾名稱)以及文件名本身。

          $Q 將初始URL中的參數(如 querystring 參數)傳遞至新的 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. 將不帶www的頂級域名301重定向到帶www的域名

          # ISAPI_Rewrite 2.x 版本

          [ISAPI_Rewrite]

          # 3600 = 1 hour

          CacheClockRate 3600

          RepeatLimit 32

          RewriteCond Host: ^abc.com\.com$

          RewriteRule (.*) http://www.abc.com [I,RP]

          # ISAPI_Rewrite 3.0 版本

          [ISAPI_Rewrite]

          # 3600 = 1 hour

          CacheClockRate 3600

          RepeatLimit 32

          RewriteCond %{HTTP:Host} ^abc.com\.com$

          RewriteRule (.*) http://www.abc.com [NC,R=301]

          B.不同域名之間的301轉向

          # ISAPI_Rewrite 2.x 版本

          [ISAPI_Rewrite]

          # 3600 = 1 hour

          CacheClockRate 3600

          RepeatLimit 32

          RewriteCond Host ^www\.test10000\.com$

          RewriteRule (.*) http://www.abc.com [I,RP]

          # ISAPI_Rewrite 3.0 版本

          [ISAPI_Rewrite]

          # 3600 = 1 hour

          CacheClockRate 3600

          RepeatLimit 32

          RewriteCond %{HTTP:Host} ^www\.test10000\.com$

          RewriteRule (.*) http://www.abc.com [NC,R=301]

          C. 將頁面301重定向到另外一個頁面

          # ISAPI_Rewrite 2.x 版本

          [ISAPI_Rewrite]

          # 3600 = 1 hour

          CacheClockRate 3600

          RepeatLimit 32

          RewriteRule ^/oldpage.html$ /newpage.html[I,O,RP,L]

          # ISAPI_Rewrite 3.0 版本

          [ISAPI_Rewrite]

          # 3600 = 1 hour

          CacheClockRate 3600

          RepeatLimit 32

          RewriteRule ^/oldpage.html$ /newpage.html[NC,L,R=301,O]

          網頁后臺程序中也可以實現301重定向。如果頁面是ASP/PHP/JSP/ASP.NET 可以再后臺代碼中做301重定向。但是CRAZYSEO工程師不推薦這樣,因為在服務器上做301跳轉是在你的頁面執行之前就開始跳轉,效率高。而程序代碼中做301,要為每個頁面頭部加轉向代碼,比較麻煩。

          示例如下

          A.PHP下的301重定向

          <?

          Header("HTTP/1.1 301 Moved Permanently");

          Header("Location: http://www.abc.com");

          ?>

          B.ASP下的301重定向

          <%@ Language=VBScript %>

          <%

          Response.Status = "301 Moved Permanently"

          Response.AddHeader "Location", "http://www.abc.com"

          %>

          C.ASP .NET下的301重定向

          <script runat="server">

          private void Page_Load(object sender, System.EventArgs e)

          {

          Response.Status = "301 Moved Permanently";

          Response.AddHeader ("Location", "http://www.abc.com");

          }

          </script>

          D.JSP下的301重定向

          <%

          response.setStatus(301);

          response.setHeader("Location", "http://www.abc.com");

          response.setHeader("Connection", "close");

          %>

          tips:如果返回報頭中只有Location,但沒有明確提到狀態代碼時,就意味著一個302臨時重定向。請謹記于心。例如下面都是302重定向:

          PHP 下的302重定向

          <?

          php header("Location: http://www.abc.com");

          ?>

          Asp 下的302重定向

          <%

          Response.Redirect "http://www.abc.com/"

          %>

          ASP.NET 302重定向

          <script runat="server">

          private void Page_Load(object sender, System.EventArgs e)

          {

          Response.Redirect("http://www.abc.com");

          }

          </script>

          JSP 下的302重定向

          <%

          response.sendRedirect("http://www.abc.com");

          %>

          總結:301重定向是一種對搜索引擎最友好的網址轉向方法。在眾多重定向技術中,301永久性重定向是最為安全的一種途徑,也是極為理想的一款解決方案。無論是URL永久性改變,還是多種格式URL規范化都離不開301重定向。

          需要值得注意的是,301重定向一般需要3-6個月甚至更長的時間才能生效,這個主要根據網站的實際情況來決定,一般來說,內容越大的網站301重定向生效的周期越長。大家在這個過程中切記一旦執行了301重定向操作就不要往復不定。

          近許多兄弟問我網站301有什么注意事項,應該怎樣正確做301、本篇內容本著實戰的原則、給大家講解一下!


            首先講一下301應用在什么場景里、下面我們分為兩種場景:


            一、需要換域名時,比如最初用的域名A、后面由于各種原因感覺A不好,需要換成了B、那么這個時候又不想損失自己的流量、就需要用到301!


            二、當你一個網站實在做不起來的時候、換個老米、把那個做不起來的網站直接301到老米上,也會有不錯的效果!(本文案例)


            案例說明 :


            一直帶兄弟們做權重站、雖然成功率比較高、但也不能保證100%成功!就以我5個算命站為例子、成功了4個、這個一直沒上去、于是買了個好點的米、進行301、畢竟10000多的收錄不能浪費!下面我們一步一步給大家演示301全過程!(本文301網址:www.hbatl.cn,被301的網址:www.pkrmxx.cn)


            第一步:首先新建一個站點,把你需要做301跳轉的站點的數據庫以及源碼上傳上去,保證301跳轉站點和這個新站點數據以及鏈接一一對應(新站點域名解析成、你最終要301去的網址)


            第二步:打開寶塔找到要做301跳轉站點網站 點擊設置

            


            第三步:301重定向有兩個版本,此教程使用【重定向測試版】進行演示

            


            




            第四步:新增重定向,保留URL參數可設置關閉或打開(301需要保留),兩者區別如下:

            


            1:如保留URL參數那么訪問httpL//www.a.com/1.html 就會重定向到你 301網站的1.html httpL//www.b.com/1.html。

            2:如不保留URL參數 那么訪問httpL//www.a.com/1.html 就會重定向到你設置的主域名。


            第五步:以上步驟完成了寶塔301設置,但是步驟還沒完重點是站長資源平臺(劃重點):

            1:需要在百度站長資源平臺同一賬號下認證你的 301站點以及新站點域名

            2:選擇你要做301的站點,選擇網站改版。

            


            3.添加站點改版(一般直接選擇站點改版)然后靜靜等待百度校驗完成,至此301全部完成!

            


            


            這里說個小技巧、如上圖才算真正完全了301、如果提示【部分改版】【驗證失敗】,則需要查找問題、或刪除重新提交、直到顯示【改版完成】,一些兄弟在操作的時候、連看都不看、后面沒改版成功、權重也沒轉移,導致流量損失,這是一個非常重要的點!

          近想把一個網站改造成https訪問,但是一些都做好了,去百度站長平臺認證https,結果怎么提交都是出現“請將您的http站點301重定向到https站點”,在百度站長社區提問也沒有人回答,最后只能自己摸索。后面找到了原因:原來百度的https認證是嚴格遵守301重定向的,我用的是iis6,之前的代碼為:

          RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{SERVER_NAME}/$1 [R] ?
          

          這種寫法雖然能夠實現將http全部跳轉到https,但是在百度站長平臺是通不過的。最后將代碼修改為以下后便通過了

          RewriteEngine On RewriteCond %{SERVER_PORT} !^443$
           RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
          

          下面我搜集整理了各種網站環境的部署https(ssl)后設置301跳轉的代碼,希望能夠對大家有所幫助。

          linuxt系統 apache環境

          云服務器:在對應站點根目錄下新建(通過ftp或登錄wdcp管理面板中:站點列表-文管-進入public_html-創建文件)一個文件命名為.htaccess。

          虛擬主機:可以通過ftp或登錄后進入到主機管理面板-文件管理,進入wwwroot,新建一個文件命名為.htaccess文件,保存即可。

          編輯.htaccess文件寫入以下規則:

          <IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{HTTP:From-Https} !^on$ [NC]RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L] # www.abc.com對應修改為您自已的域名
          RewriteCond %{HTTP_HOST} !^www\. 
          RewriteRule ^(.*)$ https://www.abc.com$1 [R=301,L] # www.abc.com對應修改為您自已的域名
          </IfModule>
           
          ?
          

          Nginx環境

          編輯nginx站點配置文件(登錄wdcp管理面板中:站點列表-文管-虛擬主機站點文件nginx-對應站點配置文件),添加以下規則

          server{listen 80;server_name abc.com;rewrite ^(.*) https://www.abc.com$1 permanent; # wajsw.com對應修改為您自已的域名 }
          

          Windows系統 II7環境

          <?xml version="1.0" encoding="UTF-8"?><configuration> <system.webServer> <rewrite> <rules> <rule name="301" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTPS}" pattern="^on$" negate="true" /> </conditions> <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" /> # www.abc.com對應修改為您自已的域名
           </rule> </rules> </rewrite> </system.webServer> </configuration>
          

          Windows系統 II6環境

          配置一個Rewrite,編輯該Rewrite的規則文件httpd.conf或者.htaccess 添加以下規則。

          RewriteEngine On RewriteCond %{SERVER_PORT} !^443$
           RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
          

          tomcat環境

          在web.xml最后一行</web-app>代碼之前添加如下代碼即可

          <security-constraint> <!-- Authorization setting for SSL --> <web-resource-collection > <web-resource-name >SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint>
          

          注: 1、discuz使用301方式強制將http跳轉到https后會導致后臺uc通信失敗。

          2、通過該方式設置跳轉后,如無法正常跳轉訪問,請單獨建立站點綁定https域名,仍在原來站點設置跳轉規則。

          以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我愛技術網。


          主站蜘蛛池模板: 日本免费电影一区| 亚洲AⅤ视频一区二区三区| 亚洲免费一区二区| 日本一区二区三区在线看| 国产高清视频一区三区| 无码人妻一区二区三区在线| 国产福利一区二区三区在线观看 | 国产情侣一区二区三区| A国产一区二区免费入口| 国产美女精品一区二区三区| 蜜桃臀无码内射一区二区三区| 一区二区三区视频| 一区二区三区在线免费| 国产精品一区二区av| 3D动漫精品啪啪一区二区下载 | 内射白浆一区二区在线观看| 激情内射亚州一区二区三区爱妻| 一区高清大胆人体| 日本免费一区二区三区最新vr| 国产凹凸在线一区二区| 亚洲日韩精品国产一区二区三区| 一区二区精品视频| 69福利视频一区二区| 国产在线一区二区三区av| 精品国产免费一区二区三区香蕉| 国产精品福利一区二区| 久久99久久无码毛片一区二区| 亚洲不卡av不卡一区二区| 日韩精品一区二区三区中文3d | 国产情侣一区二区三区| 国产乱人伦精品一区二区| 青青青国产精品一区二区| 亲子乱AV视频一区二区| 日韩精品无码久久一区二区三| 国产在线步兵一区二区三区| 国产高清一区二区三区视频| 亚洲美女视频一区| 精品人妻一区二区三区四区 | 日韩一区二区久久久久久| 无码日韩人妻av一区免费| 熟妇人妻系列av无码一区二区|