您現在的位置: 网站首頁 / SEO教程 / 正文

301重定向完整解析_301重定向代碼

作者: admin 发布: 2013-12-10 23:32:2 分类: SEO教程 閱讀: 次 查看評論

  在优化网站的时候,301重定向是站长们必不可缺的一项优化,而301重定向主要用于将内容从一个位置移动到另外一个位置。其实,在理解上也是非常简单的,比如我在http://www.abc.com/a.html上有一些内容,接着我想重构网站,于是我想把此页面上的内容移动到http://www.abc.com/b.html上。所以,我可以实施了重定向将这个页面的所有转移到另外一个页面。可能有人会问,为什么非要给网站做301重定向?首先做重定向之前要明白一点,重定向不仅对用户很重要,而且对于搜索引擎也是很重要的,当网站改版后并通过实施重定向, 可以让用户或搜索引擎访问旧版页面不是404错误页面,而是成功访问新版本的页面,还可以让搜索引擎知道你是何时移动内容的。

  301配图.jpg

相關文章推薦:
301重定向進行URL標准化設置要點

301轉向(或叫301重定向,301跳轉)和網址規範化

301重定向的實現方法

301重定向設置辦法

301重定向

如何修改.htaccess實現301重定向

我設置了301跳轉,多久可以生效?

301跳轉常見問題彙總

  爲什麽今天談301重定向的問題呢?之所以談這個問題也是因爲在分析診斷企業網站時,發現了各種各樣的問題:比如企業網站重構後沒用對舊版本的頁面重定向到新版本,導致重構後的網站出現大量的404錯誤頁面,而且網站也因爲這些而導致權重流失。另外,在設置301重定向的時候設置錯誤或不知道該怎麽去設置。所以,很多企業的站長對301重定向認識不夠、操作錯誤等。那麽,對此問題做了一些整理,希望可以幫助到中小型企業站長正確、有效的設置301重定向。

  一、301重定向的作用

  301重定向的作用有很多,平時站長在做301重定向的時候,一是爲了URL規範化並集中權重不讓權重分散、二是爲了網站改版,將舊版本的頁面的所有指標全部轉移到新版本的頁面上。而實施301重定向可以做到這些,在作用上也是非常的強大。

  二、在什麽情況下必須做301重定向

  以下五種情況是必須要做301重定向的,當然如果這五種情況都沒有發生的話可以選擇不做,下面詳細的介紹一下。

  ①:網站的舊內容過期並被刪除掉

  網站的一些內容過期了,所以要被刪掉了,如果還想留著可以通過重定向實現。

  ②:網站有一些具有鏈接和流量的無效URL

  如果你發現這些無效的URL還有流量權重,可以通過重定向重新生成頁面。

  ③:網站更換了主機托管公司

  如果網站更換了主機托管公司,不影響用戶查找網站內容的任何URL的情況下,可以不需要做重定向。

  ④:網站更換程序

  網站進行較大的改版,網站程序需要更換,此時會影響很多URL,可以通過重定向來解決。

  ⑤:網站實施URL規範化

  網站默認的URL分:

  1、abc.com

  2、www.abc.com

  3、abc.com/index.html

  4、www.abc.com/index.html

  爲了進行規範化只出現一個標准的URL,可以通過重定向實現。例如:我指向出現www.abc.com的URL,我可以將其他三個重定向到www.abc.com上。

  ⑥:網站因爲各種原因而改變現有內容的URL

  注意:並不是所有情況都是需要做重定向的,但是,任何URL的更改都是需要做重定向的。

  三、做301重定向的注意事項

  當重定向實施完之後,舊版本頁面跳轉到了新版本頁面,或網址規範化了再或者其他的,部分站長不會注意到HTTP狀態是否返回成功,就在此時,可能有些重定向不傳遞狀態或者出現錯誤的狀態碼。

  例如:404错误(页面未找到)或者200 OK(页面成功加载)

  正確的狀態碼:

  

  錯誤的狀態碼:

  

  如果遇到这种情况也是一个问题,所以要避免这样的问题发生。如果站长在做301永久重定向后,一定要确保HTTP状态是返回301 HTTP状态码而不是返回200或404再或者是其他的。

  四、301永久重定向後權重會不會疊加

  301永久重定向後權重會不會疊加呢?很多站長都在考慮這個問題,部分站長想通過這種途徑來投機取巧。301永久重定向後權重是可以疊加的,但權重不會相加。那麽,什麽樣的網站做301重定向權重是可以疊加的,什麽樣的網站做301重定向權重是不能疊加的?下面詳細的說明一下。

  ①:兩個相同的網站做301重定向是可以疊加權重的,但權重不是全部轉移過來,而且要看站點符不符規則,一般來說權重再轉移的時候會損失一部分。

  ②:兩個不相同的網站做301重定向是不可以疊加權重的,爲什麽呢?如果兩個網站一點也不相同,權重不僅不會轉移過來,而且百度也不願意這麽做,所以兩個不相同的網站沒法傳遞權重和疊加權重。

  五、301重定向和302重定向的區別

  重定向的方法其實是有很多的,但不同的方法會出現不同的結果,而且區別也是很大的。目前,根據WEB服務器返回給浏覽器的HTTP狀態碼,重定向主要可以分爲好和壞兩類,好的一類是301永久重定向、壞的一類是301臨時重定向。

  ①:301永久重定向(好)

  首先,301永久重定向。這個狀態碼告訴用戶、搜索引擎、浏覽器,該資源已經永久性的移動到另一個位置(舊版本頁面永久重定向到新版本頁面),而且沒有恢複原位的打算。

  ②:302臨時重定向(壞)

  然後,302臨時重定向。這個狀態碼告訴用戶、搜索引擎、浏覽器,該資源已經暫時性的移動到另外一個位置(舊版本頁面臨時重定向到新版本頁面),這種移動不會當作永久性,而且會恢複原來的位置。

  注意:兩種形式的重定向都會將用戶、搜索引擎發送到新的位置(頁面),但搜索引擎對待這兩個HTTP狀態碼卻不同。當搜索引擎看到301狀態碼的時候,會判斷舊版本頁面將權重或任何其他的指標永久轉移到新頁面。當搜索引擎看到302HTTP狀態碼的時候,會假設它不應該將舊頁面的曆史鏈接跟權重轉移到新的頁面,意思是轉移後還是轉移回來的。另外,301永久重定向會導致搜索引擎從索引上(百度、谷歌)刪除舊頁面並用新頁面代替。

  六、如何實施301重定向

  ①:虛擬主機

  Linux虛擬主機設置301跳轉方法:

  在本地新建一个文本文件,最好用的专业的编辑器软件如EditPlus 将代码粘入

  RewriteEngine On

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

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

  說明:上述規則是將站點所以訪問域名都重定向到www.abc.com(規則中的域名請修改爲自己的域名),如果僅想將綁定在站點上某個域名(如:www.123.com)重定向到www.abc.com,規則如下:

  RewriteCond %{HTTP_HOST} ^www.123.com$ [NC]

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

  如果有多种需求,如abc.com跳转到www.abc.com qwe.com跳转到www.qwe.com,规则如下:

  RewriteEngine On

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

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

  RewriteCond %{HTTP_HOST} ^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} ^abc.com$

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

  #第一條表示要做跳轉的域名,第二條表示要跳轉到的域名

  #如果有很多域名要做跳轉,那麽可以將第一條規則改爲

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

  这样,就表示非www.abc.com的域名访问都会跳转到www.abc.com #多个域名做跳转的第二种方法是,首先复制多个 RewriteCond 项,将域名改好 除了最后一项,其余的 RewriteCond 项最后都要加个参数 [OR]即可。

  注意:現在很多虛擬主機都自帶301的配置,可以在主機控制面板上生成代碼信息,然後按照上面的提示進行301重定向。

  ②:window獨立服務

  Win獨立服務301設置(win2003、win2008):

  1、IIS服務器實現301重定向

  打開IIS,右鍵-屬性-網站-IP地址那裏點編輯增加一個站點,然後綁定一下主機頭,也可以綁定更多的閑置域名。如圖所示:

  iis1.jpg

  打开IIS,首先新建立一个站点,随便对应一个目录E:\wwwroot\301web。该目录下只需要2个文件,一个 default.html,一个404.htm。在欲重定向的网页或目录上按右键;选中“重定向到URL”;在对话框中输入目标页面的地址;切记,记得选 中“资源的永久重定向”;当然,最后要点击“应用”,完成。如下图所示:

  iis2.jpg

  注意:win2003跟win2008都是使用IIS服務器,所以301重定向的步驟方法是一樣的。

  ③:Linux獨立服務器

  Linux獨立服務器301設置(紅帽企業版、centos):

  我用的是红帽企业版,用的是源码包装的Web环境。然后我进入Linux服务器,找到apache的主配置文件 httpd.conf , 我的apache服务器下有多个虚拟主机,我找到我要做301重定向的虚拟主机,然后添加如何的代码(代码是完整的):

  1、进入Linux服务器,然后找到httpd.conf的Apache 主配置文件,下图红色框是我所在的完整位置,蓝色框是内容,也就是命令pwd现实所在位置,ls查询当前位置的内容。

  

  既然找到主配置文件了,我们通过命令vi httpd.conf 编辑一下,在最后添加如下完整的代码。要找到配置的那个虚拟主机然后添加代码, 不要乱添加。

   ServerName www.abc.com

   ServerAdmin [email protected]

  LogLevel warn

  ErrorLog logs/dummy-host.example.com-error_log

  CustomLog logs/dummy-host.example.com-access_log common

  ServerName abc.com

  ServerAdmin [email protected]

  RewriteEngine on

   RewriteRule ^(.*)$ http://www.abc.com$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服務器的設置

  若要将blog.abc.com指向www.abc.com,则只需在DNS服务中应增加一个别名记录,可写成:blog IN CNAME www.abc.com。

  如需配置大量的虚拟域名,则可写成:* IN CNAME www.abc.com.

  這樣就可將所有未設置的以abc.com結尾的記錄全部重定向到www.abc.com上。

  ASP.NET怎樣實現頁面重定向

  網站中肯定有多個頁面構成,頁面間的關系支撐著網站的層次關系。這就考慮到一個頁面重新定向的問題,微軟提供的ASP.NET中提供了如下3種常用的頁面重定向方式:

  1. 超链接

  最常见的方法是使用超链接作为用户提供跳转到目标页的“接口”。可以在 ASP.NET 网页上使用HTML<a>标记创建静态链接,也可以通过使用 HyperLink 服务器控件以编程方式控制超链接的链接文本和目标 URL,如下面的代码所示。

  代碼實例:

  <a href="<http://www.net.cn/>oonseo.cn" target="_blank">SEO研究中心</a>

  <asp:HyperLink

  ID="HyperLink1"

  runat="server"

  NavigateUrl="<http://www.net.cn/>oonseo.cn">

  我的網站

  </asp:HyperLink>

  這兩種方法的特點在于可以將頁面重定向到任何頁,而不局限于同一Web應用程序當中。但是不會將當前頁的信息傳遞到目標頁,如果需要跨頁傳遞(共享)信息,通常需要使用查詢字符串或會話狀態。

  2. 使用浏览器以编程方式重定向

  可以通过调用 Redirect 方法为页面设置重定向URL。

  代碼實例:

  protected void Button1_Click(object sender, EventArgs e)

  {

  Response.Redirect("~/Test.aspx");

  }

  Redirect 方法接受一个表示目标位置的字符串。当服务器遇到Redirect语句时,将发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求。与 超链接一样,Redirect 方法不会向目标页传递信息。如果源页和目标页位于同一Web应用程序中,则可以通过将数据存储在会话状态中在源页和目标页之间共享数据。

  3. 在服务器端以编程方式重定向

  Redirect是通过浏览器进行重定向的,而Transfer 方法则是在服务器上直接重定向到目标页。也就是说,比起Redirect方法,Transfer少了一个由服务器传输数据到浏览器的过程,而直接由服务器 端转向目标页。Transfer方法的另一个显著特点就是在页面转换时,Request集合里的内容不会丢失,从而为开发人员带来了方便。

  代碼實例:

  protected void Button1_Click(object sender, EventArgs e)

  {

  Server.Transfer("~/Test.aspx");

  }

  由于源页和目标页之间的传输在服务器上进行,浏览器没有任何关于更改后的页的信息,它仍保留有关原始(源)URL 的信息。例如,Internet Explorer 中的“地址”框在执行传输后不会发生变化,而是继续显示最近请求的页(通常为源页)的 URL。因此,对于以隐藏 URL 的方式向用户呈现页面的应用程序而言,调用 Transfer 方法是一种最佳的策略。注意:采用Transfer方式重定向,源页与目标页必须位于相同的 Web 应用程序中,否则会引发异常。

  寫在最後:

  上述則是A5營銷整理的301重定向。總的來說,網站改版可以通過301重定向將舊版本頁面的所有全部傳遞到新版本頁面上,另外則是對URL做規範化。實施的過程中要注意爲什麽要做301重定向、方法的操作、操作的正確度等,爲了更好的設置301重定向,A5營銷建議參考以上整理的內容。轉自A5營銷

  來源:SEO搜尋引擎優化 - SEO自學網 轉載注明出處!

? 上一篇下一篇 ?   本文關鍵詞: 301  重定向  301重定向  

評論列表:

站長SEO學院
第一節:百度搜索引擎工作原理
第二節:建設對搜索引擎友好的站點
第三節:如何進行網站內容建設
第四節:整體優化、結構優化、網頁優化
第五節:移動搜索-明確移動搜索優化標准
百度SEO資料文檔
百度搜索引擎優化指南2.0
百度移動搜索優化指南2.0
網站分析白皮書(站長版)
移動站點該如何優化
建設對百度友好的站點
百度搜索引擎網頁質量白皮書
石榴算法-綠蘿算法-冰桶算法
新搜索時代下的優化策略
更多百度SEO資料文檔
站長推薦
DIV+CSS布局實例教程-Web標准
网站SEO優化常见问题汇总
SEO優化推广方案该如何写
SEO優化方案步骤
影響網站關鍵詞排名因素總結
影響谷歌搜索引擎排名的因素調查
手機移動端站點適配優化
最近發表