閱讀時間 12 分鐘
如何檢查網址轉址,並看懂重新導向鏈
一步步用 TrueURL、curl 與 DevTools 檢查網址轉址,看懂重新導向鏈的每個躍點,並找出及修正重新導向迴圈、過長的重新導向鏈與 301/302 混用等常見問題。
閱讀文章免費重新導向工具
追蹤網址到最終目的地之間的每個躍點。找出多餘的重新導向、暫時性狀態碼和緩慢的躍點,再將重新導向鏈簡化為單次重新導向。
按 Enter 開始檢查
Cloudflare 邊緣網路一律會驗證憑證,因此這個選項無法略過驗證。憑證問題會顯示在檢查結果中。
隨第一個要求一起傳送,上限 16 KB。除非您另外設定 Content-Type 標頭,否則 JSON 內容會以 application/json 傳送,其他內容則以表單格式傳送。
1 至 50。瀏覽器最多只追蹤 20 次重新導向。
網站可能會對手機、爬蟲和連結預覽機器人採用不同的重新導向。
會隨重新導向鏈中的每個要求一起傳送。
尚未新增自訂標頭。
填入值後才會傳送此標頭。標頭值不會儲存。
追蹤 HTML 網頁中的 <meta http-equiv="refresh"> 標記與 Refresh 標頭。
追蹤網頁指令碼中簡單、無條件的重新導向,例如 location.href = "…"。
設定會儲存在這個瀏覽器中。Cookie、標頭值和 POST 要求主體一律不會儲存。
重新導向鏈是瀏覽器或爬蟲在抵達有內容的頁面之前,必須依序經過的一連串重新導向。一個躍點(例如從 /old-page 到 /new-page)是正常的。但規則多年來不斷累加,重新導向鏈就會越拉越長:先是從 HTTP 導向 HTTPS 的規則,接著是 www 規則,再來是結尾斜線規則,最後是上次網站改版留下的規則。下面這條重新導向鏈有四次重新導向,其實一次就夠了:
http://example.com/shop 301
https://example.com/shop 301
https://www.example.com/shop 301
https://www.example.com/shop/ 302
https://www.example.com/store/ 200
每一列代表一個躍點。狀態顯示重新導向的類型:301 和 308 是永久性的,302、303 和 307 則是暫時性的。方法顯示 POST 在哪裡變成了 GET,就像瀏覽器遇到 301、302 或 303 時的做法。原始的 Location 值會原封不動地呈現伺服器送出的內容,方便您找出相對路徑、缺少的斜線或多餘的查詢字串。標示為 meta refresh 或 JavaScript 的躍點,是在頁面 HTML(或 Refresh 標頭)中找到的用戶端重新導向,而不是來自 Location 標頭。
重新導向鏈會以下列四種方式之一結束:在最終網址得到正常回應、形成重新導向迴圈、達到最大躍點數上限,或在特定躍點發生錯誤,例如 DNS 解析失敗、逾時或憑證問題。
http://example.com/page 直接導向 https://www.example.com/page/。閱讀時間 12 分鐘
一步步用 TrueURL、curl 與 DevTools 檢查網址轉址,看懂重新導向鏈的每個躍點,並找出及修正重新導向迴圈、過長的重新導向鏈與 301/302 混用等常見問題。
閱讀文章閱讀時間 13 分鐘
一次看懂每個 3xx 狀態碼的意義:從是否永久、要求方法、快取與 SEO 比較 301、302、303、307 和 308 轉址的差異,並附 nginx、Apache 與 PHP 設定範例。
閱讀文章目標是讓任何舊網址只經過一次重新導向就抵達最終網址。在無法避免時,兩次也還可以接受,例如先從 HTTP 升級到 HTTPS,再變更主機名稱。TrueURL 會標示超過三次重新導向的重新導向鏈。Googlebot 在 10 個躍點後就會放棄,瀏覽器則大約在 20 次後停止,並顯示「重新導向次數過多」錯誤。
Google 表示 3xx 重新導向不會流失 PageRank,因此重新導向鏈不會直接稀釋排名訊號。實際的問題在於網頁變慢、浪費檢索要求,以及鏈中某個躍點失效或屬於暫時重新導向的機率提高。請把重新導向鏈視為技術債,並加以簡化。
重新導向鏈最後一定會結束在某個最終網址。迴圈則永遠不會結束,因為它會回到先前已經造訪過的網址,瀏覽器會顯示錯誤而不是頁面。TrueURL 兩者都能偵測;重新導向迴圈檢查頁面說明了迴圈的常見成因與修正方式。
可以。在進階設定中將「HTTP 方法」設為 POST,並加入要求主體。接下來重新導向鏈會遵循瀏覽器的規則:在 POST 之後,301、302 或 303 會改以不含主體的 GET 繼續,307 或 308 則會以相同的主體重送 POST。
表示最終網址的主機名稱和您輸入的不同(開頭的 www. 不列入比較)。對短網址和網域搬遷來說,這是正常現象。但如果您自己網站上的網頁意外跑到其他網域,就要仔細檢查:這可能代表規則設定錯誤、網站遭到入侵,或是存在開放式重新導向(open redirect)。
會,這是預設行為。TrueURL 會掃描 HTML 回應中的 meta refresh 標記和簡單的 JavaScript 重新導向,從那裡繼續追蹤重新導向鏈,並標示這些躍點,方便您和 HTTP 重新導向區分。您可以關閉這項功能,只查看伺服器端重新導向,或使用 Meta Refresh 重新導向檢查工具查看詳細資訊。
表示該躍點的要求在收到任何 HTTP 回應之前就失敗了:主機名稱無法解析、連線遭拒或逾時、TLS 憑證無效,或是重新導向指向無效或遭封鎖的位址。該躍點的錯誤訊息會說明是哪一種情況。在它之前的躍點仍會顯示,因此您可以清楚看出重新導向鏈是在哪裡中斷的。