當 Bulk URL Generator 把範本展開成一份清單之後,檢查結果的方式就是在工具內直接檢視每一列代入後的文字:第一個 URL、最後一個 URL、總筆數,以及中間的逐字字元。這個工具會在瀏覽器中計算等差數列,並透過瀏覽器的 URL serializer 將每一個代入後的字串解析為真正的 HTTP 或 HTTPS URL;只要有任一列無法通過這個解析,它就不會釋出清單——因此,檢視這個步驟其實是在確認:範本、起始值、結束值、步長與補零設定所產生的結果,正好就是你在匯出多達 10,000 個 URL 之前所預期的內容。這個產生器不會去抓取這些 URL、不會請求狀態碼,也不會承諾它們真的存在於某個伺服器上。它在檢視步驟所呈現的,是一小段可複製的預覽,內容就是即將匯出的逐字文字——也就是你這個模式的一份可驗證指紋。那份指紋,就是「如何檢查結果」這個問題的實務答案。至於即時狀態、重新導向鏈與實際內容,則屬於另一個獨立的受控檢查工具,會在你已經看過並核准清單之後才執行。想要開啟這個工具並重現這套工作流程,請前往 Bulk URL Generator。

檢查實際發生在工作流程的哪個位置
Bulk URL Generator 的三個操作步驟,可以清楚地分成輸入、範圍設定與輸出檢視三個階段。第三個步驟——產生一小段樣本、檢視實際的第一個與最後一個 URL,然後複製或下載經過驗證的清單——才是你真正閱讀產生器實際產生之代入文字的階段。在此步驟之前的一切都屬於設定:範本、起始值、結束值、步長與補零。在此步驟之後的一切都是下游用途:複製到試算表、存成檔案,或貼到另一個工具。因此,檢視是一個刻意安排、介於小規模驗證與大規模匯出之間的暫停,而不是按下「產生」按鈕所自動產生的副作用。
在進入檢視的那一刻,瀏覽器已經完成的工作其實並不簡單。它已經驗證過範本使用的是 http 或 https 機制。它已經把每一個起始值、結束值、步長與補零參數,都驗證為允許範圍內的安全整數。它已經計算出一個不超出結束邊界的包含型等差數列。它已經對每個數值進行補零。它已經把每一個字面的 {n} 都代入,包括在同一範本中重複出現的位置。它已經把產生的字串解析為絕對 URL,並透過瀏覽器的 URL 序列化(也就是 WHATWG URL Standard 所定義的規則集)統一主機大小寫與預設連接埠,同時拒絕任何內嵌的認證資訊。只要其中任何一個檢查失敗,整個操作就會失敗,而不會回傳一份不完整的清單。因此,閱讀第一個與最後一個 URL 本身並不是檢查——檢查早就發生過了——而是檢查通過的可見證明。
逐步檢視 Bulk URL Generator 的輸出
- 開啟 Bulk URL Generator,輸入一個絕對的 http 或 https 範本,在需要變動的數字位置放上字面的 {n} 預留位置;若同一個值必須同時出現在路徑與查詢字串中,請重複使用它。
- 為起始值、結束值與選擇性的補零設定安全的整數,並挑選一個方向從起始指向結束的步長——遞增為正,遞減為負。
- 把起始值與結束值縮減成一個緊密的測試範圍,例如 1 到 5,觸發一段短樣本,然後依照預覽中出現的順序閱讀結果列。
- 閱讀第一個代入後的 URL,確認 {n} 已被替換為起始值;若啟用了補零,也要確認零補已經把設定的寬度套用到該數字上。
- 閱讀最後一個代入後的 URL,確認它符合你等差數列的有界終點——以起始 1、結束 6、步長 2 為例,最後一列必須是 5 而非 6。產生器的 包含型結束行為會在超出範圍之前停止數列,而不是憑空產生一個不符合模式的值。
- 計算樣本中的列數,並確認該數字與範圍相符——對一個不超出範圍的包含型數列來說,列數為 floor(|end − start| / |step|) + 1,因此 1 到 9、步長 2 的範圍會產生 5 列,而非 9 列。
- 一旦第一個、最後一個與列數都符合設計,就把起始值與結束值提升到實際生產範圍,重新產生完整清單(上限為 10,000 個 URL),然後再進行複製或下載。
在第一個與最後一個 URL 上該閱讀什麼
當你在閱讀一個樣本列時,請把每一個可見字元都視為一項證據。這個產品的契約對每列如何產生做了一些小小的保證,而檢視步驟正是你用肉眼驗證這些保證的時刻。當你在掃讀產生的第一列與最後一列時,請依下表順序進行閱讀。
| 列屬性 | 它所確認的事項 |
|---|---|
| 第一列的 {n} 替換結果 | 已套用起始邊界,並對起始值套用補零寬度 |
| 最後一列的 {n} 替換結果 | 已抵達結束邊界,或為跨越前的最後一個值 |
| 第一列的補零後數字 | 在起始值上遵守零補設定 |
| 機制(http:// 或 https://) | 範本的機制已完整保留 |
| 第一列與最後一列的主機大小寫 | 瀏覽器 URL 序列化已統一主機大小寫 |
| 預設連接埠(連接埠 80 或 443) | 瀏覽器 URL 序列化已移除預設連接埠 |
| 使用者資訊段(user:pass@) | 未出現——含認證資訊的 URL 一律被拒絕 |
| 百分比編碼字元 | 瀏覽器已在必要時對保留字元進行百分比編碼 |
| 重複出現的 {n} | 每一處都被替換成同一個數值 |
檢視時需要辨認的模式形狀
以下的範例展示了檢視步驟對幾個常見範本所能揭露的結果。每一列都是一個完整的模式——包含範本、起始值、結束值、步長與補零——並列出你在預覽中應該預期看到的第一個與最後一個 URL。若你的預覽與所顯示的最後一個 URL 不一致,代表邊界或步長設定錯誤;若與第一個 URL 不一致,代表起始值或補零設定錯誤。
| 範本 | 起始 | 結束 | 步長 | 補零 | 第一個 URL | 最後一個 URL | 需確認的事項 |
|---|---|---|---|---|---|---|---|
| https://example.com/page-{n} | 1 | 3 | 1 | 0 | https://example.com/page-1 | https://example.com/page-3 | 基本遞增,每一列皆可達 |
| https://example.com/page-{n} | 1 | 6 | 2 | 0 | https://example.com/page-1 | https://example.com/page-5 | 無法整除的結束——最後一個值是 5 而非 6 |
| https://example.com/page-{n} | 10 | 4 | -2 | 0 | https://example.com/page-10 | https://example.com/page-4 | 使用負步長的遞減 |
| https://example.com/article-{n}-{n} | 1 | 3 | 1 | 3 | https://example.com/article-001-001 | https://example.com/article-003-003 | 重複預留位置,補零至 3 位數 |
| https://example.com/photo-{n} | -3 | 3 | 1 | 2 | https://example.com/photo--03 | https://example.com/photo-03 | 負值會在補零後的數字前保留負號 |
若想要一份精簡、涵蓋所有支援模式形狀與其行為的對照表,Bulk URL Generator Cheat Sheet 已把所有組合集中在一處,是你在還沒決定哪個範本最符合命名規則時很自然的延伸閱讀。
當樣本看起來正確時:匯出與下游檢查
一旦短樣本已閱讀完畢並符合設計,就把邊界提升到實際的生產範圍並重新產生。輸出是一份以換行分隔的純 URL 清單,上限為 10,000 列,且範本長度上限為 4,000 個字元。在這個上限以下,頁面會保持流暢,匯出過程完全在瀏覽器內完成,不會把你的範本送到任何地方。請把原始範本與匯出的檔案保存在一起,這樣日後才能重現同一個等差轉換——少了範本,清單就只是一堆文字。
由於匯出的是純文字,而非 XML、中繼資料或網站索引檔,下游工具會把它視為輸入,而不是一份完成的 SEO 成品。請把匯出的清單存成 .txt 檔、作為輸入送進另一個獨立的即時狀態檢查工具,或貼進一段腳本中。模式本身——也就是產生這份清單的起始值、結束值、步長與補零——也應該和檔案一起保存,以便同事明天重新執行 Bulk URL Generator 時能得到相同的輸出。在這套工作流程中,任何步驟都只有在模式被妥善記錄的情況下才是可還原的。
檢視無法告訴你的事
Bulk URL Generator 的驗證步驟只能證明兩件事,而且也只有這兩件事:等差數列是正確的,且每一個代入後的字串都是語法上有效的絕對 HTTP 或 HTTPS URL,沒有內嵌認證資訊。它不會聯繫目的伺服器、不會擷取狀態碼、不會跟隨重新導向、也不會量測回應時間。一列完全有效的輸出,仍可能回傳 404、重新導向到不同的網域、躲在身分驗證之後,或指向不該被索引的內容。
若要進行即時狀態稽核——這是任何實際 URL 工作流程中所缺少的一塊——請把匯出的清單貼進另一個獨立的受控檢查工具,由它以平行的方式發出真實的 HTTP 請求,並回報狀態碼、重新導向鏈與內容類型。那份即時檢查的輸出,才是壞連結稽核、重新導向對應或內容品管流程真正需要的東西。Bulk URL Generator 的輸出是這項稽核的輸入,而不是它的替代品。實務上的結果就是一種清楚的分工:模式算術與 URL 文法在瀏覽器中本地驗證完畢,接著再對同一份清單進行遠端的真實狀態驗證。兩個步驟都缺一不可,但單獨哪一個都不足夠。