UrlEdge
ブログに戻る
2026年5月11日 UrlEdge Editorial4 min read

リダイレクト API と Rules as Code: URL 変更を CI/CD で安全に運用する

リダイレクトルールは本番トラフィックの設定です。レビュー、検証、ステージング、公開、監視、ロールバックまで含めて扱うべきです。

Redirect rules as code、CI検証、API自動化、edge公開、rollback snapshotを示す開発者向けworkflowボード

リダイレクトは、最初は小さな修正として始まります。商品 URL が変わる。ヘルプページを移動する。キャンペーン LP の slug を変える。誰かが next.config.js、Cloudflare、CMS プラグイン、Nginx に 1 行追加する。

数件なら問題になりません。EC サイトの移行、ドメイン変更、ヘッドレス化、LINE や広告からのキャンペーン流入、パートナーリンクが絡むと、同じ運用はすぐに危うくなります。

リダイレクトルールは、古い検索流入、QR コード、広告クリック、メール、アフィリエイト、ドキュメント URL の行き先を決めます。これは小さな設定ではなく、本番トラフィックの設定です。

安全な形は、リダイレクトをデプロイ可能な設定として扱うことです。ルールを構造化し、CI で検証し、ステージングで挙動を確認し、production には versioned snapshot を公開し、ロールバックを先に用意します。

なぜリダイレクトをリリースフローに入れるのか

開発チームはすでに環境変数、DB migration、feature flag、middleware をレビューしています。SEO、広告、売上に影響するリダイレクトも同じ扱いが必要です。

弱い運用はこうなりがちです。

  • SEO がスプレッドシートを持つ
  • 開発が app config にコピーする
  • マーケティングが別ツールで campaign destination を変える
  • CMS プラグインが見えない redirect を作る
  • CDN が hostname を正規化する
  • 問題が起きたとき、どの層が反応したかわからない

Rules as Code は、redirect map をレビュー可能な成果物にします。YAML、JSON、Terraform、CSV、API payload のどれでも構いません。大事なのは、誰が承認し、何を検証し、どう戻すかです。

review、CI検証、承認、edge公開を通過するRedirect rules as codeのpipeline

source と destination だけでは足りない

old_urlnew_url だけでも redirect はできます。ただし、安全には運用できません。

意図まで含めた契約にします。

{
  "source": "/old-pricing",
  "destination": "/pricing",
  "status": 301,
  "match": "exact",
  "queryPolicy": "preserve_allowlist",
  "preserveQuery": ["utm_source", "utm_medium", "utm_campaign", "gclid"],
  "owner": "growth",
  "reason": "pricing page consolidation",
  "expiresAt": null
}

EC や移行では、priority、locale、country、device、batch、review status、fallback も必要になります。

フィールド必要な理由
status恒久移転は 301/308、一時的なキャンペーンやテストは 302/307
matchexact、wildcard、regex、host、query、header、condition を区別する
queryPolicyUTM、click ID、coupon、affiliate ID を落とさない
ownerSEO、サポート、analytics の問い合わせ先を明確にする
batch移行単位で publish と rollback を行える
expiresAt一時的なキャンペーンルールを放置しない

Google のリダイレクト説明でも、恒久か一時か、検索結果にどの URL を出したいかが判断の軸になります。CI はその判断を代行しませんが、危険な組み合わせは止められます。

API sync で手作業を減らす

リダイレクトは repository の外で生まれます。CMS の slug が変わる。EC カタログの商品が終了する。docs の version が変わる。SEO 会社が migration map を渡す。パートナー用の branded link が必要になる。

すべてを手作業で転記すると、すぐにズレます。

Redirect API は境界を整理します。

発生元API で行うこと
CMSslug 変更時に redirect を作成。ただし重要ページは承認待ちにする
EC カタログ販売終了商品を代替商品、カテゴリ、waitlist、unavailable page に送る
Docs build旧 docs path を release と一緒に公開する
Migration sheet承認済み batch を import、validate、snapshot として公開する
Internal toolssupport や ops が CDN 権限なしで rule を依頼できるようにする

CMS、EC、docs、migration sheet、internal toolsを検証済みedge rulesへつなぐRedirect API contract

Cloudflare は Rulesets API で redirect rule を作成できます。Next.js や Vercel も config で redirects を持てます。実行層はあります。難しいのは、validation、owner、staging、analytics、rollback です。

CI で確認すべきこと

Redirect の CI は、構文だけではなく挙動を確認します。

確認項目:

  • source の重複
  • destination の形式
  • owner、reason、status の欠落
  • exact rule を隠す wildcard や regex
  • 期間限定キャンペーンに permanent status が付いていないか
  • destination の 404、410、5xx、予期しない redirect
  • redirect chain の長さ
  • loop
  • UTM、click ID、coupon、partner ID の欠落
  • country、device、header、query 条件に fallback があるか
  • 他 batch との衝突

重要 URL は request matrix で確認します。

source=/old-pricing
country=JP
device=desktop
query=?utm_source=google&gclid=test
expectedStatus=301
expectedDestination=/pricing?utm_source=google&gclid=test

これで、公開前に実際の到達先を説明できます。

request check、snapshot比較、承認、recovery pathを含むredirect変更のCI QAとrollback workflow

staging は最終ルートを見せる

リダイレクト用 staging は、次の質問に答えるべきです。この URL と request context なら、本番で何が起きるのか。

表示したい情報:

  • match した rule
  • status code
  • final destination
  • query handling
  • condition result
  • competing rules
  • chain length
  • owner と batch
  • published snapshot との差分

GitHub Actions の environments は deployment 前に reviewer を要求できます。同じ考え方を redirect にも使えます。CI が検証し、staging が証拠を出し、production publish は正しい owner の承認を待ちます。

rollback は機能要件

リダイレクトの rollback のために origin app を深夜に redeploy するべきではありません。

公開済み snapshot を保存します。import batch に tag を付けます。一時キャンペーンと恒久 migration を分けます。緊急 override は見える場所に置きます。

問題より安全な対応
migration batch が間違っていたbatch を停止または rollback
重要ページの行き先が違う高優先度の exact rule を追加
campaign landing が落ちた一時的に fallback へ切り替える
regex が広すぎたpattern を止め、例外を明示的に公開
query policy で analytics が壊れた以前の policy に戻し、UTM 付き URL を再テスト

SEO、広告、サポート、売上に影響する rule なら、rollback は最初から設計に入れるべきです。

UrlEdge が担う部分

UrlEdge は、URL 変更のたびに origin deploy をしたくないチームのための redirect workflow です。

アプリに属する小さな redirect は app config に残せます。単純な host 正規化は CDN でも構いません。レビュー、証拠、自動化、早い復旧が必要になったら、Redirect API と Rules as Code の出番です。

FAQ

Redirect rules as code とは何ですか?

リダイレクトルールを構造化されたレビュー可能な形式で管理し、検証、staging、公開、rollback を通す運用です。

すべて Git に置くべきですか?

いいえ。安定した migration rule には Git が向きます。CMS、EC、partner、internal tool から生まれる rule には API sync が向きます。

CI/CD から直接 publish できますか?

できます。ただし validation、staging evidence、権限、リスクの高い変更の approval、rollback が必要です。

参考文献

API でリダイレクト公開を自動化

リダイレクトルールの作成、検証、公開、監視、ロールバックをデプロイフローに組み込みます。

API を見る

関連記事

すべて見る