解決 WordPress 開啟 CDN 無法取得真實 IP

4,109 0

昨天剛剛開啟了評論郵件提醒功能「美化 WordPress 郵件回覆樣式」,就發現郵件裡關於評論者的 IP 居然是錯的,WordPress 自己取得了 CDN 的 IP 節點。

這樣一來,就不好分析網站訪客的地域關係了,而且 WordPress 自帶的攔截 IP 評論功能也將會失效,所以我想要解決它。於是我在網路上找了一下相關內容,後來在幻殺部落格找到了完美的解決方案,下面分享給小夥伴們。

Image

解決方案

開啟 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)

暫無評論,來說兩句吧

發佈評論