使用步驟
- 每行一條:舊路徑,然後是新路徑或完整網址。
- 選擇伺服器和狀態碼(永久搬家用 301)。
- 修正工具提示的鏈式跳轉、循環和重複。
- 複製或下載規則,加到伺服器配置裡。
引數說明
- 301 / 308
- 永久跳轉,搜尋引擎會把排名轉到新網址。308 還會保留請求方法(POST 仍是 POST)。
- 302 / 307
- 臨時跳轉,舊網址仍保留在索引裡。
- Nginx(map)
- 用查表方式匹配,規則有成百上千條也很快。
一份輸入,五種輸出
每一行是舊路徑,後面跟新路徑或完整網址,用空格、製表符或逗號分隔。以 # 開頭的行會被忽略。以狀態碼 301、網域 example.com 和下面兩行為例:
/old-page /new-page
/blog/2019/post https://example.com/articles/post
Nginx
location = /old-page { return 301 /new-page; }
location = /blog/2019/post { return 301 https://example.com/articles/post; }
Apache .htaccess
RedirectMatch 301 ^/old-page$ /new-page
RedirectMatch 301 ^/blog/2019/post$ https://example.com/articles/post
Caddy
example.com {
redir /old-page /new-page 301
redir /blog/2019/post https://example.com/articles/post 301
}
Cloudflare(每條規則一行 CSV,沒有表頭:來源、目標、狀態碼)
example.com/old-page,https://example.com/new-page,301
example.com/blog/2019/post,https://example.com/articles/post,301
Nginx(map) 會生成一段放在 http 部分的 map $uri $redirect_to 塊,以及放在 server 部分、帶 return 301 $redirect_to 的簡短 if 塊。如果你在列表裡再加上 /a /b 和 /b /c,檢查器會報告鏈式跳轉 /a → /b → /c,並建議把 /a 直接指向 /c。
常見問題
什麼是鏈式跳轉?
A → B → C。每多跳一次頁面變慢、抓取配額被浪費,應該讓 A 直接跳到 C。
Apache 為什麼用 RedirectMatch 而不是 Redirect?
Redirect 按字首匹配,/old 會連帶 /old-page 一起跳。帶 ^ 和 $ 的 RedirectMatch 只匹配完全相同的路徑。
規則能處理查詢引數嗎?
規則按路徑匹配,大多數伺服器會把查詢引數原樣帶過去;但針對某個 ?id=1 的規則需要額外條件,所以工具會對這類行給出提示。
隱私說明
本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。