圖樂資訊

我如何把文章數字網址改成固定英文網址,並保留 301 跳轉

發布時間:2026/7/16

作者:沈嘉怡

Gotule 原本使用 `/article/01` 這類數字文章網址,但文章排序改變後,數字可能指向不同內容。本文記錄我如何為文章設定固定英文 slug、保留舊數字編號、加入 301 永久跳轉,並驗證舊網址與新網址的完整過程。

我如何把文章數字網址改成固定英文網址,並保留 301 跳轉-圖片1
修改前舊數字文章網址跳轉到錯誤的動態網址

我為什麼開始檢查文章網址?

我發布第一篇原創文章時,使用的網址是:

/article/01

數字網址看起來簡單,也容易輸入,所以我一開始沒有覺得有問題。

後來我在手機上開啟首頁,發現點選第一篇文章後,顯示的卻是另一篇內容。第二篇文章也可能開啟第一篇的內容,但電腦版當時看起來正常。

最初我以為是手機快取、頁面連結或瀏覽器造成的問題。重新整理和重新部署後,情況仍然存在。

繼續檢查後,我才發現原本的數字網址不是永久儲存在每篇文章中的固定編號,而是根據當時的文章排序計算。

當網站發布新內容後,文章的排列位置可能改變。原本代表第一篇文章的 /article/01,之後就可能對應另一筆資料。

我使用 HTTP 標頭檢查舊網址時,發現 /article/01 返回了301跳轉,但跳轉目標仍然是系統產生的動態圖集網址,而不是我準備設定的固定文章網址。

當時的固定網址還返回404,說明資料庫資料和新路由尚未正確連線。

數字網址可能帶來的問題

如果一篇文章的網址會隨發布順序改變,可能產生幾個問題:

  1. 以前分享出去的連結可能開啟不同內容。
  2. 搜尋引擎已經收錄的網址可能與文章不一致。
  3. 首頁、分類頁和推薦內容可能使用不同連結。
  4. 讀者收藏的網址可能失去原來的用途。
  5. 網站管理者難以從網址判斷文章內容。

對新聞排序來說,第一名、第二名可以隨時間改變;但對文章網址來說,每篇內容都需要一個長期不變的識別方式。

因此,我決定為普通文章增加固定英文網址,同時保留舊數字網址作為相容入口。

在資料庫中為文章設定固定英文 slug 和普通文章型別

為文章增加固定英文 slug

新的文章網址不再使用會受排序影響的數字,而是使用與文章主題有關的英文 slug。

例如,我的 OneDrive 文章固定網址設定為:

/article/onedrive-project-storage-transfer

這個網址直接表達文章內容:OneDrive、網站專案儲存和轉移。即使網站之後發布更多文章,它也不會因為排序改變而指向其他內容。

為了同時支援新舊網址,我在文章資料中儲存三項資訊:

我把 OneDrive 文章的資料更新為:

完成後,每篇文章都有自己的固定網址,不再依靠目前的發布排序決定連結。

不只是修改瀏覽器網址

如果只修改文章頁面的網址,但首頁和其他位置仍然使用舊連結,網站內部還是會出現混亂。

所以這次修改也需要讓以下位置統一使用固定 slug:

  1. 首頁文章卡片。
  2. 分類頁文章列表。
  3. 推薦內容連結。
  4. 文章 canonical 網址。
  5. sitemap 網站地圖。
  6. 社交分享網址。
  7. 伺服器輸出的結構化資料。

這樣讀者、搜尋引擎和社交平臺看到的才會是同一個正式網址。

我也保留了原本的數字編號。當有人開啟 /article/01 時,伺服器會先找到對應的舊編號,再把讀者永久跳轉到正確的固定網址。

這樣既能改善新文章的網址結構,也不需要立即放棄以前分享出去的舊連結。

驗證舊文章網址返回 301 並跳轉到返回 200 的固定網址

如何確認 301 跳轉正確?

資料庫和程式修改完成後,我沒有隻在瀏覽器中看頁面,而是分別檢查舊網址和新網址的 HTTP 狀態。

第一個測試是舊網址:

/article/01

它應該返回:

301 Moved Permanently

同時,響應中的 Location 必須指向:

/article/onedrive-project-storage-transfer

第二個測試是新的固定網址。它應該直接返回:

200 OK

最後的實際結果是:

這說明舊連結仍然可以使用,但瀏覽器和搜尋引擎會被帶到新的正式網址。

為什麼使用 301 而不是建立兩個相同頁面?

如果舊網址和新網址都直接顯示相同內容,搜尋引擎可能會看到兩個內容重複的頁面。

使用301永久跳轉,可以清楚表示這篇內容已經移到新的固定網址。網站只需要把新網址作為正式頁面。

文章頁面的 canonical、網站地圖、首頁連結和推薦內容也全部使用新網址,避免網站內部繼續產生舊數字連結。

舊網址只負責接收以前的分享或收藏,再把讀者帶到正式頁面。

我從這次網址改造學到的事情

這次問題一開始表現為「手機點錯文章」,但真正的原因不是手機,而是網址編號與文章排序混在一起。

經過實際修改和驗證後,我整理出幾個之後會遵守的做法:

  1. 每篇文章發布時立即設定固定 slug。
  2. slug 使用簡短、可理解的英文單字。
  3. 發布後不要隨意修改正式網址。
  4. 必須改網址時,保留301永久跳轉。
  5. 首頁、分類、推薦、canonical和sitemap使用同一網址。
  6. 不只檢視頁面,還要檢查HTTP狀態和跳轉位置。
  7. 釋出新文章後,再測試幾條舊數字網址。
  8. 手機和電腦都要實際點選文章連結確認內容。

文章網址看起來只是瀏覽器上方的一行文字,但它同時影響讀者收藏、社交分享、網站內部連結和搜尋引擎收錄。

對我來說,這次修改不只是把數字換成英文,而是讓每篇文章從發布開始,就擁有一個不會因排序而改變的固定位置。