跳到正文
馬克工具箱

301 重定向規則產生器

網站改版、換網域,舊網址要跳到新網址?貼上新舊網址(表格裡的兩列也行),一次生成你的伺服器能用的重定向規則。還會檢查列表裡的鏈式跳轉、循環跳轉,以及同一個地址跳到兩個地方的衝突,這些都是改版後排名下降的常見原因。

在瀏覽器本地執行,輸入的內容和檔案都不會上傳

每行一條:舊路徑,然後是新路徑或完整網址,中間用空格、Tab 或逗號隔開;# 開頭的行忽略。可以直接貼上表格裡的兩列。

4 條規則

把這些行放進 server { } 塊,然後 nginx -t 檢查並重新載入。

頁面搬家用 301 或 308,搜尋引擎會把排名轉移到新地址。避免鏈式跳轉:每多跳一次,頁面變慢,抓取配額也被浪費。

使用步驟

  1. 每行一條:舊路徑,然後是新路徑或完整網址。
  2. 選擇伺服器和狀態碼(永久搬家用 301)。
  3. 修正工具提示的鏈式跳轉、循環和重複。
  4. 複製或下載規則,加到伺服器配置裡。

引數說明

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 的規則需要額外條件,所以工具會對這類行給出提示。

隱私說明

本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。

相關工具