リダイレクト・表示設定
プラグインの各設定項目の詳細と、リダイレクトページのカスタマイズ方法を解説します。
リダイレクト設定
リダイレクト設定では、転送先ドメインや待機時間、フォールバック先など、リダイレクト処理の基本動作を制御します。
| 設定項目 | 説明 | デフォルト値 |
|---|---|---|
転送先ドメインredirect_domain |
転送先の基本URLを入力します。末尾のスラッシュは不要です。ドメインだけでなく、下層パスを含むURL(例: https://example.com/new-site/)も指定できます。この場合、旧サイトの各パスが下層パスの後ろに結合されて転送されます(例: 旧 /about/ → https://example.com/new-site/about/)。 |
(空) |
リダイレクト待機秒数redirect_delay |
meta refreshタグの待機秒数を-1〜60の範囲で指定します。0で即時転送、-1で自動転送なし(リンクのクリックのみ)。ユーザーに移転メッセージを読ませる時間を確保できます。 | 3 |
フォールバックURLfallback_url |
転送先ページがエラー(4xx/5xx)を返す場合に代わりに転送するURLです。空の場合は転送先ドメインのトップページにフォールバックします。 | (空 = トップページ) |
canonical出力canonical_enabled |
転送先URLが存在する場合(200応答など)に、リダイレクトページにcanonicalタグを出力します。SEO/GEOの観点で、検索エンジンやAIクローラーに移転先の正しいURLを伝えるために有効です。 | ON |
タイトル取得fetch_title_enabled |
転送先ページのtitleタグを取得し、リダイレクトページのタイトルとして使用します。検索結果に転送先の情報が表示されやすくなります。 | ON |
おすすめ設定
redirect_delay は3〜5秒がおすすめです。短すぎるとユーザーがメッセージを読めず、長すぎると離脱の原因になります。-1に設定すると自動転送が無効になり、ユーザーがリンクをクリックしない限り遷移しません。canonical_enabled と fetch_title_enabled はどちらもONのままにしておくことで、SEO効果を最大限に活用できます。
設定画面の全体像 - リダイレクト設定・表示設定・メッセージ設定をまとめて管理
表示設定
リダイレクトページの見た目をカスタマイズできます。ブランドに合わせたデザインで、ユーザーに安心感を与えるページを作成しましょう。
| 設定項目 | 説明 | デフォルト値 |
|---|---|---|
ロゴ画像URLlogo_url |
リダイレクトページに表示するロゴ画像のURLです。「画像を選択」ボタンからWordPressのメディアアップローダーを使って選択できます。 | (空) |
背景色background_color |
リダイレクトページの背景色をカラーピッカーで選択します。 | #000000(黒) |
テキスト色text_color |
リダイレクトページのテキスト色をカラーピッカーで選択します。 | #cccccc(薄灰) |
リンク色link_color |
転送先URLのリンク色をカラーピッカーで選択します。 | #e67e22(オレンジ) |
カラーピッカーの使い方
背景色・テキスト色・リンク色の各項目には、WordPressのカラーピッカーが表示されます。色をクリックして視覚的に選択するか、16進数カラーコード(例: #ff6600)を直接入力することもできます。
メディアアップローダーの使い方
ロゴ画像の設定では「画像を選択」ボタンをクリックすると、WordPressのメディアアップローダーが開きます。既存のメディアライブラリから画像を選択するか、新しい画像をアップロードしてください。
メッセージ設定
リダイレクトページに表示するメッセージをカスタマイズできます。
| 設定項目 | 説明 | デフォルト値 |
|---|---|---|
移転メッセージmessage_text |
リダイレクトページに表示する移転告知のメッセージです。 | 当サイトは下記URLに移転しました |
カウントダウンメッセージcountdown_text |
自動転送までのカウントダウンを表示するメッセージです。{seconds} プレースホルダーが実際の残り秒数に自動で置換されます。 |
{seconds}秒後に自動的に転送されます |
{seconds}プレースホルダーについて
カウントダウンメッセージ内の {seconds} はJavaScriptによってリアルタイムで残り秒数に置換されます。この文字列はメッセージ内に必ず含めてください。例: 「あと{seconds}秒で移動します」
プレビュー機能
設定画面の下部にある「プレビュー」セクションでは、現在の設定でリダイレクトページがどのように表示されるかをリアルタイムで確認できます。背景色・テキスト色・リンク色・ロゴ画像・メッセージの変更が即座に反映されるため、保存前に仕上がりを確認できます。
設定画面のプレビューセクション - 変更がリアルタイムで反映される
フロントエンドでの表示例
実際にフロントエンドでユーザーがアクセスした際に表示されるリダイレクトページの例です。ロゴ画像、移転メッセージ、転送先URL、カウントダウンが表示されます。
フロントエンドで表示されるリダイレクトページ
リダイレクト処理の技術的な流れ
本プラグインのリダイレクト処理は、以下のステップで実行されます。
リクエストのインターセプトtemplate_redirect フック(優先度1)でフロントエンドのリクエストを最優先でキャッチします。
除外判定is_admin()、wp_doing_ajax()、wp_doing_cron()、REST_REQUEST を確認し、管理画面やAPI通信を除外します。
転送先ドメインの確認redirect_domain が空の場合は処理を中断し、通常のWordPress動作を継続します。
URL構築$_SERVER['REQUEST_URI'] からパスとクエリ文字列を分離し(wp_unslash + sanitize_text_field でサニタイズ)、転送先URLを構築します。
ホスト名検証
構築したURLのホスト名が転送先ドメインと一致するか検証し、SSRF(サーバーサイドリクエストフォージェリ)攻撃を防止します。
転送先の存在確認wp_safe_remote_head で転送先URLにHEADリクエストを送信し、ステータスコードを確認します。結果はTransient APIで1時間キャッシュされます。
フォールバック判定
ステータスコードが0(接続失敗)または400以上(4xx/5xxエラー)の場合はフォールバックURLに転送先を切り替えます。200〜399(成功・リダイレクト)の場合はcanonical出力とタイトル取得を行います。
出力バッファクリアob_end_clean で既存の出力バッファをクリアします。EWWW Image Optimizer等のプラグインによる出力干渉を防止します。
ヘッダー送信Content-Type: text/html; charset=UTF-8 と X-Robots-Tag: noindex ヘッダーを送信し、リダイレクトページが検索エンジンにインデックスされないようにします。
HTMLリダイレクトページ出力
meta refreshタグ、canonical(有効時)、カスタマイズされたリダイレクトページHTMLを出力し、die() で処理を終了します。
リダイレクト処理の全体フロー
Transientキャッシュに関する注意
設定を保存すると、転送先URLの存在確認キャッシュ(Transient)は自動的にクリアされます。ただし、URLごとの存在確認結果は最大1時間キャッシュされるため、転送先ページの状態が変わった場合(例: 転送先が復旧した、新しいページが追加された等)には、反映まで最大1時間かかることがあります。エラー時のキャッシュは5分で期限切れになります。