WordPress 開啟 CDN 無法取得真實 IP

4,086 0

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

這樣一來,就不好分析網站訪客的地域關係了,而且 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)

暫無評論,來說兩句吧

發佈評論

© 2026 一紙忘憂. 保留所有權利.

一紙忘憂的個人網站,關於技術探索與日常生活,記錄 Web 開發、後端與 DevOps 實踐,分享軟體工具、數位體驗,以及程式碼之外的見聞與思考。