WordPressでCDNを有効にすると実際のIPアドレスを取得できない問題を解決する
4,109 0
昨日、コメントメール通知機能「WordPressのメール返信スタイルをカスタマイズする」を有効にしたばかりなのですが、メールに記載されたコメント投稿者のIPアドレスがなんと間違っていることに気づきました。WordPressがCDNのIPノードを取得していたのです。
これでは、Webサイト訪問者の地域的な関係を分析しにくくなりますし、WordPressに標準搭載されているIPによるコメント拒否機能も使えなくなってしまいます。そのため、これを解決したいと思いました。そこで、関連する内容をネットで調べたところ、後に幻杀ブログで完璧な解決策を見つけました。以下で皆さんに共有します。

解決策
WordPressのルートディレクトリにある wp-config.php ファイルを開き、ファイルの末尾に次のコードを追加します。
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)まだコメントはありません