WordPressでCDNを有効にすると実際のIPアドレスを取得できない問題を解決する

4,109 0

昨日、コメントメール通知機能「WordPressのメール返信スタイルをカスタマイズする」を有効にしたばかりなのですが、メールに記載されたコメント投稿者のIPアドレスがなんと間違っていることに気づきました。WordPressがCDNのIPノードを取得していたのです。

これでは、Webサイト訪問者の地域的な関係を分析しにくくなりますし、WordPressに標準搭載されているIPによるコメント拒否機能も使えなくなってしまいます。そのため、これを解決したいと思いました。そこで、関連する内容をネットで調べたところ、後に幻杀ブログで完璧な解決策を見つけました。以下で皆さんに共有します。

画像

解決策

WordPressのルートディレクトリにある wp-config.php ファイルを開き、ファイルの末尾に次のコードを追加します。

PHP
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    $_SERVER['REMOTE_ADDR'] = $list[0];
}

原理

CDNのHTTPヘッダーには訪問者のIPデータが記録されています。このコードは、WordPressのIP関連の変数を $_SERVER から取得したものに置き換えるものです。上記のコードは、任意のCDNやリバースプロキシで使用でき、IPアドレスを正しく取得できます。

コメント

(0)

まだコメントはありません

コメントを投稿

憂いを忘れる一枚

「憂いを忘れる一枚」は、技術探究と日々の暮らしをテーマにした個人サイトです。Web 開発、バックエンド、DevOps の実践を記録し、ソフトウェアツールやデジタル体験、コードの外で得た見聞と思索を共有します。

© 2026 憂いを忘れる一枚. 無断転載を禁じます.