網址重新導向的3個方法

3 methods to redirect url

什麼是網址重新導向?在什麼情況下會用到?網址的重新導向,就是將現有網址轉換到新網址的技術,不但能讓將訪客導向到新的網頁位置,也可讓Google搜尋引擎了解新、舊網頁的改變關係。通常在網址改變,或是「永久連結」改變時,就會需要重新導向。

何時會用到網址重新導向?

舉例來說,網址的重新導向,可能的情況如下:

  1. 網站改變網址名稱:希望舊網頁能轉移到新網頁。例如:example.com,改為newdomain.com,那麼所有的網頁需要從舊網址轉到新網址。但實務上,整個網站改網址的情況比較少見。
  2. 官方網址的統一性:網址其實有些微區別:是否加密、是否加www/或non www。以下3個網址都是官方網站的首頁,應透過重新導向將網址統一。例如:
    • http://example.com/ (未加https)
    • http://www.example.com (加上www)
    • https://example.com(htts + non www,將其他網址重新導向到此網址)
  3. 某網頁已不存在,或改了URL,需將不存在的網頁導向到指定的網頁,或將舊網頁導向到新網頁。
  4. 在WordPress中改變了「永久連結」的設定,網頁的永久連結改變了,整個網站的網址結構都會改變。

這篇文章主要是探討的狀況是第3、4種,即在WordPress中的連結已改變,或永久連結的設定改變,則全站的網址都將改變。

此時應如何處理,才能讓訪客到達正確的網頁,並且還能兼顧網站的SEO呢?

重新導向的基礎知識

當瀏覽器載入頁面時,是使用URL,向伺服器發出請求:「請給我這個網頁」(https://example.com)

正常情況下,網站伺服器會返回「頁面」與「狀態碼」。例如(200)

但如果瀏覽器請求的URL是不存在的,網站伺服器就會無法返回頁面,並且也返回狀態碼(404),代表此網站沒有這一頁。

還有許多其他狀態代碼,其中300系列的狀態碼,是向瀏覽器表明該URL已改變為其他位置。

jclassroom 20221001 003
jclassroom 20221001 003

HTTP的狀態碼,可分為5類。類似的狀態會歸回同一類。在此將這5類的狀態碼,大致解說如下:

  • 100s:100開頭的狀態碼,表示瀏覽器的請求正在被處理。
  • 200s:網站正常,返回成功碼。
  • 300s:網頁已被替換,返回重新導向代碼。(301、302…)
  • 400s:用戶端錯誤,表示請求有問題。(404,表示無此頁面)
  • 500s:網站伺服器端的問題,以500開頭的狀態碼來表示。

301、302重新導向代碼的意義為何?

如果返回的是300開頭的狀態碼,代為網址為重新導向。

網頁伺服器告知瀏覽器,你要求的URL已經不存在,返回300狀態碼,並告訴瀏覽器新頁面將重新導向到新的URL,最後,瀏覽器被導向到新的頁面。常見3000s系列的狀態碼有2個:

  • 301:永久重新導向。當請求的網頁已經被永久移動,替換為其他的網頁。
  • 302:暫時重新導向。瀏覽器訪問的頁面,臨時重新導向到不同的頁面時。

說了這些基本概念,我們今天要定義的主要就是301的重新導向。(永久)

永久連結改變需要301重新導向

在傑哥的一個客戶案例中,網站已經指定了永久連結為「純數值」,且已經用了一段時間。但是這樣的永久連結設定不佳,網址較長且會自帶數值,不符合Google SEO的要求(沒有語義化)。網址會是這個樣子,並且需要改為箭號後的樣子。

Example.com/archives/11430  →  Example.com/網址別名

或是:

Example.com/archives/portfolio/網址代稱   →  Example.com/portfolio/網址別名

剛好趁著網站改版,一起把網址的結構更正。若要進行網址重新導向,傑哥推薦一個好用的免費外掛,可以完全處理好轉址重新導向的問題:Redirection

在後台外掛區,搜尋並安裝好Redirection外掛之後,就可以開始設定了。

jclassroom 20221001 002
安裝並啟用Redirection 外掛

※重要:在設定之前,請將全站的資料庫備份。

全站的永久連結重新導向

在後台,設定→永久連結,網址原來設定為「純數值」,此時改為「文章名稱」,按儲存。

jclassroom 20221001 004
WordPress後台的永久連結設定

此時所有的文章連結都會隨之改變,那麼舊的連結(例如:Example.com/archives/11430)就會返回空白的網頁,或顯示404找不到網頁。

在後台工具→Redirection,進入Redirection設定畫面後,按Site標籤,我們可以看到中間有一個Permalink Migration。在這裡加上一個/archives/%post_id%,也就是原來的「純數值」的設定。它就會自動幫助我們重新導向。

jclassroom 20221001 005
在Redirection 可支援永久連結改變後的重新導向

Non www 轉向到 www

在Permalink Migration的上方區塊,還有一個Canonical Settings,這些設定需配合DNS的設定,如果你已經將DNS設定好了,可以使用這裡來統一網址。

它的說明很簡短易懂,也就是是否要加制加上https,以及是否要將www導向到non www(或反之)。

jclassroom 20221001 006
在Redirection中可以設定https和non www轉換

其原理是去修改Apache伺服器的.htaccess或

Nginx伺服器的rewrite rules file。

正規表示法的重新導向

還有一種狀況,是在永久連結改變後,

/archives/tag/工業風

會變成

/tag/工業風

也就是說,您想更改/archives/tag//tag/,但保留「工業風」。

為此,可以使用正規表示法,例如/archives/tag/(.*)

括號.*,這告訴重定向時去抓取數據。替換為/tag/$1

這裡的$1可接收被抓取的值(.*)。所以變化的細節是這樣:

/archives/tag/工業風/archives/tag/(工業風)/tag/$1 →=> /tab/工業風

這裡的重點是,用(.*)可抓取網址為變數,再用$1來接收這個變數。

在Redirection外掛中,新增Redirects,

上面輸入/archives/tag/(.*)

下面輸入/tag/$1

然後將右方的Regex(正規表示法)打開,新增這條規則,就可以將所有的tag重新導向完成。

jclassroom 20221001 007
使用正規表示法Regex來批次更改網址重新導向

網址重新導向的結論

要執行網址的重新導向,其實是一件很麻煩的工作,尤其對SEO的影響會很大,必須要仔細的評估與測試,才能完全把舊網址重新導向到新網址。

最好的方法就是在網站建置之初,有良好的規畫,在設定網址時,就能有正確且長遠的方法,如此,後續的維護與網站的SEO才會更順利。

留下第一則留言

訂閱電子報