在進行網站遷移、重構網址結構或清理舊內容時,網頁管理員與開發人員經常需要配置大量的重新導向規則。手動撰寫這些規則不僅耗時,且極易出錯。「重新導向規則產生器」能將來源與目標網址的 CSV 對應表,快速轉換為 Nginx、Apache 或 Vercel 所需的精確配置代碼。
隱私與瀏覽器端處理
本工具在設計上完全保護您的數據隱私。您的 CSV 檔案與產生的規則只留在瀏覽器中,不會上傳到 BroBroGo。所有解析與規則生成工作均在您的本機瀏覽器內完成。
準備重新導向對應 CSV 檔案
要使用此產生器,您需要準備一個符合特定格式的 CSV 檔案。
格式規範與限制
- 欄位名稱:CSV 的第一列必須為標題列,且必須包含
source與target(或destination)欄位。 - 來源網址(Source URL):可以是一個完整的 HTTP 或 HTTPS 網址,或是以
/開頭的根相對路徑。輸入時系統會自動移除來源網址中的主機名稱(Hostname)。 - 目標網址(Destination URL):可以是一個完整的 HTTP 或 HTTPS 網址,或是以
/開頭的根相對路徑。 - 檔案大小限制:上傳的 CSV 檔案大小必須小於 5 MB。
- 對應數量限制:單次最多支援處理 2,000 條對應關係。
- 長度限制:單一 URL 的長度不得超過 2,048 個字元。
嚴格的精確比對規則
為了確保重新導向的準確性,本工具僅產生精確比對(Exact Match)的規則。
- 無查詢參數與片段:來源網址中不得包含查詢字串(Query String,如
?query=1)或錨點片段(Fragment,如#section)。 - 無萬用字元:來源網址不得包含萬用字元(Wildcard)或路由模式字元(如
*)。 - 唯一性:每個來源路徑在 CSV 中只能出現一次,不可重複。
選擇狀態碼:301 永久與 302 暫時
在設定重新導向時,選擇正確的 HTTP 狀態碼對於搜尋引擎最佳化(SEO)至關重要:
- 301 永久(301 Permanent):告訴搜尋引擎該網頁已永久移至新位置。搜尋引擎會將舊網址的權重(Link Juice)轉移至新網址,這是網站遷移與網址重構時最常用的設定。
- 302 暫時(302 Temporary):表示網頁僅暫時移至新位置,搜尋引擎不會轉移權重,適用於短期活動或系統維護。
支援的伺服器執行環境
不同 Web 伺服器與託管平台處理重新導向的語法各有不同。本工具支援以下三種主流環境:
Nginx
Nginx 規則會被錨定到精確的來源路徑。產生器會輸出精確比對的 rewrite 或 return 指令,確保只有完全符合該路徑的請求才會觸發重新導向。
Apache
對於 Apache 伺服器,產生器會輸出適用於 .htaccess 檔案的 Redirect 或 RewriteRule 指令。這些規則同樣會鎖定完整的來源路徑,進行精確匹配。
Vercel
在 Vercel 環境中,重新導向規則通常寫在 vercel.json 設定檔中。
值得注意的是,Vercel 預設的 permanent: true 會輸出 308 狀態碼,而 permanent: false 則會輸出 307 狀態碼。為了確保精確輸出您所選擇的 301 或 302 狀態碼,本工具在產生 Vercel 配置時會明確使用 statusCode 屬性。此外,由於標準 Vercel 部署最多僅支援 2,048 條路由,因此本工具將對應上限嚴格限制在 2,000 條以內。
錯誤訊息與排查
若 CSV 檔案內容不符合規範,工具會顯示相應的錯誤提示:
請先選擇 CSV 檔。請選擇.csv 檔。這個 CSV 太大,請選擇小於 {max} 的檔案。CSV 中沒有重新導向對應。CSV 在第 {line} 列附近無法解析,請檢查引號和逗號。標題列需要 source 和 target(或 destination)兩欄。第 {line} 列需要同時填入來源和目標網址。第 {line} 列的來源無效,請使用 HTTP(S) URL 或以 / 開頭的路徑。第 {line} 列的來源含查詢參數或片段,請只保留來源路徑。第 {line} 列使用了萬用字元或路由模式字元。本工具只接受精確來源路徑。第 {line} 列的目標無效,請使用 HTTP(S) URL 或以 / 開頭的路徑。第 {line} 列有 URL 超過 2,048 個字元。第 {line} 列重複了來源路徑 {source},每個來源只能出現一次。一次最多處理 {max} 條對應。產生時間過長,請檢查 CSV 後再試一次。無法產生規則,請檢查 CSV 後再試一次。
常見問題
CSV 檔應該怎麼寫?
第一列請使用 source 和 target 欄名,target 也可以寫成 destination。之後每列填入一個完整的 HTTP/HTTPS 來源 URL 或以 / 開頭的路徑,再填入完整或以 / 開頭的目標網址。
產生的是精確比對規則嗎?
是。Nginx 與 Apache 規則會鎖定完整來源路徑,Vercel 也使用同一路徑。完整來源 URL 的網域會被移除;來源若含查詢參數、片段或萬用模式會遭拒,因為三個環境的處理方式不同。
為什麼 Vercel 輸出使用 statusCode?
Vercel 的 permanent 開關對應 308,temporary 對應 307。使用 statusCode 才能精確輸出你選擇的 301 或 302。標準 Vercel 部署最多共有 2,048 條路由,因此本工具一次最多接受 2,000 條對應。