相關推薦

什麼是301重定向?

重定向

重定向是將一個URL轉發到不同URL的過程。 

什麼是重定向?

重定向是一種將用戶和搜索引擎發送到與其最初請求的URL不同的URL的方法。三種最常用的重定向是301,302和Meta Refresh。

重定向的類型

  • 301,“永久移動” – 推薦用於SEO
  • 302,“發現”或“暫時移動”
  • Meta Refresh 

301永久移動

301重定向是永久重定向,它將90-99%的鏈接權益(排名權力)傳遞到重定向頁面。301指的是此類重定向的HTTP狀態代碼。在大多數情況下,301重定向是在網站上實現重定向的最佳方法。

302 Found(HTTP 1.1)/暫時移動(HTTP 1.0)

Google的一些員工表示,有些情況下301和302可能會被視為相似,但我們的證據表明,確保各類搜索引擎和瀏覽器給予充分信任的最安全方法是在永久重定向URL時使用301。Internet運行在稱為超文本傳輸協議(HTTP)的協議上,該協議規定了URL的工作方式。它有兩個主要版本,1.0和1.1。在第一個版本中,302指的是狀態代碼“暫時移動”。這在版本1.1中更改為“發現”。

307暫時移動(僅限HTTP 1.1)

307重定向是302重定向的HTTP 1.1後繼。雖然主要的爬蟲在某些情況下會像302一樣對待它,但最好在幾乎所有情況下使用301。例外情況是內容實際上只是暫時移動(例如在維護期間),並且搜索引擎已將服務器識別為1.1兼容。由於基本上不可能確定搜索引擎是否已將頁面標識為兼容,因此通常最好對已暫時移動的內容使用302重定向。

Meta Refresh

元刷新是在頁面級而不是服務器級執行的一種重定向。它們通常較慢,而不是推薦的SEO技術。它們通常與五秒倒計時相關聯,文本為“如果您未在五秒鐘內重定向,請單擊此處”。元刷新確實通過了一些鏈接權益,但由於可用性差和鏈接權益的丟失而不推薦作為SEO策略。

SEO最佳實踐

通常的做法是將一個URL重定向到另一個URL。在這樣做時,觀察最佳實踐以保持SEO價值至關重要。

第一個常見的例子是一個簡單的場景:一個需要永久重定向到另一個地址的URL。

重定向-插圖1.gif的mtime = 20170104131455#資產:2291:網址

這樣做有多種選擇,但一般來說,301重定向對於用戶和搜索引擎都是首選。服務301表示瀏覽器和搜索引擎機器人頁面已永久移動。搜索引擎將此解釋為意味著不僅頁面已更改位置,而且可以在新URL處找到內容或其更新版本。引擎將攜帶從原始頁面到新URL的任何鏈接權重,如下所示:

重定向,谷歌-301.gif的mtime = 20170104131453#資產:2289:網址

請注意,當將頁面從一個URL移動到另一個URL時,搜索引擎將花費一些時間來發現301,識別它,並將新頁面歸功於其前任的排名和信任。如果搜索引擎蜘蛛很少訪問給定的網頁,或者新URL未正確解析,則此過程可能會更長。

重定向的其他選項,如302s和元刷新,是不好的替代品,因為它們通常不會像301重定向那樣通過排名和搜索引擎值。這些重定向是唯一的好選擇,如果網站管理員有目的地不希望將舊頁面中的鏈接權益傳遞給新頁面。

當整個站點更改其域或內容從一個域移動到另一個域時,傳輸內容會變得更加複雜。由於垃圾郵件發送者的濫用和搜索引擎的懷疑,域之間的301s有時需要更多的時間來適當地進行蜘蛛和計數。有關移動站點的更多信息,請參閱實現SEO友好域遷移:信息圖

301 Apache中的重定向

問題:

回到我們推出第一個網站seomoz.org時,它在www.socengine.com/seo/上託管,而不是在自己的域名上。當原始開發人員將seomoz.org移動到自己的專用服務器時,他們希望將其作為自己的域而不是socengine.com的子目錄進行訪問。他們需要訪問www.socengine.com/seo/的訪問者才能重定向到www.seomoz.org。重定向必須容納多個文件和文件夾名稱更改,並且必須使用301重定向才能使搜索引擎友好。他們還需要轉發http://seomoz.org,以達到審美目的並避免規範化錯誤。

解:

最簡單的方法是將301重定向添加到使用PHP的函數為seomoz.org提供動力的PHP代碼中。然而,利用apache模塊mod_rewrite的強大功能,開發人員意識到他們可以匹配整個文件夾的特定模式,並將它們重定向到新的URL,而無需瀏覽每個PHP腳本。

安裝:

為了使其工作,Web服務器需要安裝apache模塊mod_rewrite。

大多數apache安裝默認安裝mod_rewrite。SEOmoz的原始服務器運行Linux發行版FreeBSD,默認包含mod_rewrite。要檢查模塊是否已安裝,開發人員可以通過將以下行添加到apache配置文件或適用的.htaccess文件來驗證它是否正常工作:

RewriteEngine On
上下文

mod_rewrite模塊在每個服務器上下文或每個目錄上下文中運行。

每服務器上下文要求開發人員必須編輯ap​​ache配置文件httpd.conf。每個目錄上下文使用用戶想要配置的每個文件夾中存在的.htaccess文件。如果網站管理員無法訪問httpd.conf,則必須使用.htaccess文件。

正則表達式(又名正則表達式)

來自wikipedia.org:

正則表達式是根據某些語法規則描述或匹配一組字符串的字符串。許多文本編輯器和實用程序使用正則表達式來基於某些模式搜索和操作文本主體。

正則表達式是程序員和系統管理員學習的寶貴技能。要根據本文檔中的示例重定向URL,了解使用正則表達式的基礎知識非常重要。以下是本文檔中描述的正則表達式中使用的字符和運算符的列表:

  • 。期間匹配任何東西
  • *星號匹配前面的零個或多個字符
  • +加號與前面一個或多個字符匹配
  • ()括號括起括號中的值將存儲變量中匹配的內容以供稍後使用; 這也稱為反向引用
  • (value1 | value2) – 在括號中包含兩個或多個值並用豎線字符分隔它們相當於:“匹配value1或value2”

將特定文件和文件夾從一個域重定向到另一個域

Moz的原始開發人員需要從舊服務器重定向到保留文件名的新服務器。

重定向:http://www.socengine.com/seo/s … To:/somefile.php

將以下指令添加到socengine.com服務器上的適用文件中:

RedirectMatch 301 /seo/(.*)/ $ 1
說明

正則表達式/seo/(.*)告訴apache匹配seo文件夾,後跟零個或多個任何字符。括號內的。*會告訴apache將匹配的字符串保存為反向引用。此反向引用位於指向的URL的末尾,在本例中為$ 1。

重定向Canonical Hostnames

Moz的原始開發人員需要重定向任何不以www.seomoz.org開頭的請求,以確保它們包含www。他們這樣做不僅是因為它看起來更好,而且是為了避免常見的規範化錯誤。

重定向:http://seomoz.org/ 
致:http://www.seomoz.org/

重定向:http://mail.seomoz.org/ 
致:http://www.seomoz.org

重定向:
http://seomoz.org/somefile.php致:http://www.seomoz.org/somefile …

添加以下指令:

RewriteCond%{HTTP_HOST} *!^ www * .seomoz  .org [NC] <br>
RewriteRule(。*)http://www.seomoz.org/$1 [L,R = 301]
說明

該指令告訴apache檢查訪問者正在訪問的主機,如果它不等於www.seomoz.org,則重定向到www.seomoz.org。www.seomoz.org前面的驚嘆號(!)否定了比較,說“如果主持人不是www.seomoz.org,那就執行RewriteRule。”在我們的案例中,RewriteRule將它們重定向到www.seomoz.org而保留他們在後向引用中訪問的確切文件。

重定向而不保留文件名

舊服務器上存在的幾個文件在新服務器上不再存在。不是在重定向中保留文件名(這會導致新服務器上找不到404錯誤),而是需要將舊文件重定向到新域的根URL。

重定向:http://www.socengine.com/seo/s … 
要:http://www.seomoz.org/

解:

添加以下指令:

RedirectMatch 301 /seo/someoldfile.php http://www.seomoz.org
說明:

省略任何括號,所有請求/seo/someoldfile.php都應重定向到http://www.seomoz.org的根URL

重定向GET字符串

一些PHP腳本有不同的名稱,但GET字符串保持不變。Moz開發人員需要將訪問者重定向到新的PHP腳本,同時保留這些GET字符串。GET字符串是URL中文件名後面的字符集,用於將數據傳遞到網頁。URL中的GET字符串示例/myfile.php?this=that&foo=bar如下?this=that&foo=bar.

重定向:http://www.socengine.com/seo/c … 
致:http://www.seomoz.org/artcat.p …

解:

添加以下指令:

RedirectMatch 301 /seo/categorydetail.php(.*)http://www.seomoz.org/artcat.php$1
說明:

正則表達式(。*)再一次告訴apache匹配零個或多個任何字符,並將其保存為後引用$ 1。由於/seo/categorydetail.php之後有1美元,它現在將get字符串重定向到這個新的PHP文件。

在更改文件擴展名時重定向

在最初的場景中,舊服務器上有一個混合HTML和PHP的文件夾。在新服務器上,這些文件都是PHP,需要重定向邏輯才能將舊URL更改為此新擴展。

重定向:http://www.socengine.com/seo/g … 
致:http://www.seomoz.org/articles …

重定向:http://www.socengine.com/seo/g … 
致:http://www.seomoz.org/articles …

解:

添加以下指令:

RedirectMatch 301 /seo/guide/(.*).(php|html)http://www.seomoz.org/articles/$1.php
說明:

(*.)匹配任何字符的零個或多個,並將其保存為反向引用$1.(php|html)告訴apache匹配一個句點後面跟著“php”或“html”並將其保存為後引用$ 2(雖然這個例子中沒有使用它)。注意帶有反斜杠的轉義期。這是為了確保apache不會將句點解釋為“任何字符”,而是將其解釋為實際句點。將“php”和“html”括在括號中並用管道“|”字符分隔它們意味著匹配其中一個值。因此,如果它是說(php|html|css|js|jpg|gif)正則表達式將匹配任何擴展名為php,html,css,js,jpg或gif的文件。

結論

通過利用mod_rewrite的強大功能和一些正則表達式魔術,Moz的原始開發人員開發了一組簡單的重定向網頁規則。通過使用301重定向,他們以一種對搜索引擎友好的方式做到了這一點。

为您推荐

發佈留言

联系我们

联系我们

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部