閱讀時間 13 分鐘
HTTP 重新導向狀態碼詳解:301、302、303、307、308 等
一次看懂每個 3xx 狀態碼的意義:從是否永久、要求方法、快取與 SEO 比較 301、302、303、307 和 308 轉址的差異,並附 nginx、Apache 與 PHP 設定範例。
閱讀文章免費重新導向工具
查出網址是永久還是暫時重新導向。TrueURL 會檢查每個躍點,並告訴您搜尋引擎是否會將這次搬移視為永久性的。
按 Enter 開始檢查
Cloudflare 邊緣網路一律會驗證憑證,因此這個選項無法略過驗證。憑證問題會顯示在檢查結果中。
隨第一個要求一起傳送,上限 16 KB。除非您另外設定 Content-Type 標頭,否則 JSON 內容會以 application/json 傳送,其他內容則以表單格式傳送。
1 至 50。瀏覽器最多只追蹤 20 次重新導向。
網站可能會對手機、爬蟲和連結預覽機器人採用不同的重新導向。
會隨重新導向鏈中的每個要求一起傳送。
尚未新增自訂標頭。
填入值後才會傳送此標頭。標頭值不會儲存。
追蹤 HTML 網頁中的 <meta http-equiv="refresh"> 標記與 Refresh 標頭。
追蹤網頁指令碼中簡單、無條件的重新導向,例如 location.href = "…"。
設定會儲存在這個瀏覽器中。Cookie、標頭值和 POST 要求主體一律不會儲存。
TrueURL 會檢查重新導向鏈中的每個躍點,而不只是第一個:
301 和 308 都是永久重新導向,Google 對兩者的處理方式也相同。差別在於要求方法:遇到 301 時,瀏覽器可能會將 POST 改為 GET,308 則保證方法與主體都會保留。一般網頁請使用 301,必須持續接收 POST 要求的 API 端點或表單目標則使用 308。暫時重新導向的兩個狀態碼也是同樣的道理:302 可能會改變方法,307 則絕對不會。
如需所有 3xx 狀態碼的完整比較,請參閱 HTTP 重新導向狀態碼詳解。
其他所有情況,尤其是網站搬遷和網址變更,請使用 301。
閱讀時間 13 分鐘
一次看懂每個 3xx 狀態碼的意義:從是否永久、要求方法、快取與 SEO 比較 301、302、303、307 和 308 轉址的差異,並附 nginx、Apache 與 PHP 設定範例。
閱讀文章在上方輸入舊網址。TrueURL 會在不自動追蹤重新導向的情況下要求該網址,並顯示每個躍點確切的狀態碼。在命令列中,curl -I https://example.com/old-page 只會顯示第一個回應,除非加上 -L,而且它無法偵測 meta refresh 或 JavaScript 重新導向。我們的網址重新導向檢查指南說明了 curl 的各個選項。
Google 表示,301、302 和其他伺服器端重新導向都不會流失 PageRank。不同之處在於標準網址(canonical)訊號:301 會告訴 Google 將新網址編入索引,302 則暗示保留舊網址。等兩個網頁都重新檢索之後,排名通常就會轉移到新網址上並趨於穩定。
Google 建議重新導向至少保留一年,而永久保留更為保險:舊連結、書籤和其他網站上的參照,多年後仍會繼續使用舊網址。保留一條重新導向規則幾乎不需要任何成本。
常見原因包括外掛程式或框架預設使用 302、CDN 或主機代管服務的規則在您的規則之前執行,或是快取了舊的回應。請逐一查看每個躍點:如果 302 來自您的規則所處理範圍以外的主機或路徑,就表示有其他層級加上了它。
會。瀏覽器可能會長時間快取 301 和 308 重新導向,經常持續到快取被清除為止,因此錯誤的 301 可能會持續影響已經跟隨過它的訪客。測試新規則時,請使用 302 或較短的 Cache-Control: max-age,確認無誤後再改為 301。TrueURL 不會快取回應,因此一律會顯示伺服器目前送出的內容。
就 SEO 而言並沒有,Google 對兩者的處理方式相同。只有在必須保留要求方法時,308 才比較好,例如接收 POST 要求的 API 端點。部分非常舊的用戶端無法理解 308,因此對網頁來說,301 仍是安全的預設選擇。
只有在首頁確實是最佳替代網頁時才這麼做。Google 可能會將已移除網頁重新導向至首頁的情況視為軟性 404(soft 404)。請重新導向至最接近的對等網頁;如果沒有,就回傳 410 Gone 或 404 Not Found。