トラブルシューティング
よくある問題とその解決方法をまとめています。
よくある問題
1. リダイレクトが動作しない
原因:
redirect_domain(転送先ドメイン)が設定されていない- プラグインが無効化されている
解決方法:
- WordPress管理画面の「設定」>「Meta Refresh Redirect」で転送先URLが入力されているか確認してください
- 「プラグイン」画面でプラグインが有効化されているか確認してください
2. 転送先がエラーなのにフォールバックしない
原因:
- Transientキャッシュに古いステータスコードが残っている
解決方法:
- 設定画面で「変更を保存」をクリックしてください。保存時にTransientキャッシュが自動的にクリアされます
- 設定を変更しない場合は、キャッシュの有効期限(最大1時間)が切れるまで待つと、次回アクセス時に最新のステータスが確認されます
3. ロゴ画像が表示されない
原因:
- EWWW Image Optimizer等の遅延読み込み(Lazy Load)プラグインが干渉している可能性があります。本プラグインは
ob_end_cleanで出力バッファをクリアして対処していますが、まれに干渉が残る場合があります
解決方法:
- ロゴ画像のURLを外部ドメイン(CDNなど)のURLに変更してください。外部ドメインの画像であれば、遅延読み込みプラグインの処理対象外になることが多いです
4. wp-adminにアクセスできない
原因:
- 通常は発生しません。プラグインは
is_admin()チェックにより管理画面を除外しています。しかし、極めてまれな環境依存の問題で管理画面までインターセプトされる可能性があります
解決方法:
- FTP/SFTPまたはファイルマネージャーでサーバーに接続してください
wp-content/plugins/ディレクトリ内の本プラグインのフォルダ名を変更してください(例:wp-plugin-kashiwazaki-seo-meta-refresh-redirect-mainをwp-plugin-kashiwazaki-seo-meta-refresh-redirect-main.disabledに変更)- フォルダ名を変更するとプラグインが自動的に無効化され、管理画面にアクセスできるようになります
5. 他のプラグインとの競合
原因:
- 本プラグインは
template_redirectフックの優先度1で動作するため、他のリダイレクトプラグインよりも先に実行されます。これにより、他のリダイレクトプラグインの処理が実行されない場合があります
解決方法:
- 他のリダイレクトプラグイン(Redirection、Safe Redirect Manager等)を一時的に無効化して、競合が原因かどうかを確認してください
- 本プラグインは全ページを転送する設計のため、個別のリダイレクトルールを設定する他のプラグインとの併用は推奨されません
緊急時の対処
管理画面にアクセスできなくなった場合は、FTPでプラグインフォルダをリネームするのが最も確実な復旧方法です。データベースの変更は不要で、wp_options テーブルの設定値はプラグインを再有効化しても保持されます。
動作要件
| 項目 | 要件 |
|---|---|
| WordPress | 5.0 以上 |
| PHP | 7.4 以上 |
| ライセンス | GPL v2 or later |
| プラグインバージョン | 1.0.1 |
技術仕様
データ保存方法
- 設定データ:
wp_optionsテーブルにksmrr_optionsキーで全設定を配列として保存 - ステータスキャッシュ: Transient API -
ksmrr_status_{md5(url)}(正常時1時間、エラー時5分) - タイトルキャッシュ: Transient API -
ksmrr_title_{md5(url)}(正常時1時間、エラー時5分)
通信方式
- 存在確認:
wp_safe_remote_head- 転送先URLのHTTPステータスを確認(SSRF対策済み) - タイトル取得:
wp_safe_remote_get- 転送先ページのHTMLからtitleタグを抽出(SSRF対策済み)
セキュリティ対策
- SSRF対策:
wp_safe_remote_head/wp_safe_remote_getを使用し、内部ネットワークへの不正アクセスを防止 - SQLインジェクション対策:
$wpdb->prepare+esc_likeによるクエリのパラメータ化 - XSS対策:
sanitize_text_field、esc_url、esc_html、esc_attrによる入出力のサニタイズ・エスケープ - CSRF対策: Settings API のnonce検証により、不正なフォーム送信を防止
- 権限チェック:
manage_options権限を持つ管理者のみが設定を変更可能 - ホスト名検証: 構築されたURLのホスト名が転送先ドメインと一致するか確認し、オープンリダイレクトを防止
プラグインのアーキテクチャ概要