
|
提問(wèn)三步曲: 提問(wèn)先看教程/FAQ索引(wdcp,wdcp_v3,一鍵包)及搜索,會(huì)讓你更快解決問(wèn)題
1 提供詳細(xì),如系統(tǒng)版本,wdcp版本,軟件版本等及錯(cuò)誤的詳細(xì)信息,貼上論壇或截圖發(fā)論壇
2 做過(guò)哪些操作或改動(dòng)設(shè)置等
溫馨提示:信息不詳,很可能會(huì)沒(méi)人理你!論壇有教程說(shuō)明的,也可能沒(méi)人理!因?yàn)?你懂的
[教程] DISCUZ站長(zhǎng)如果使用CDN請(qǐng)注意啊該問(wèn)題存在于任何CDN產(chǎn)品
本帖最后由 rar9 于 2012-3-12 13:00 編輯
使用CDN后Discuz!論壇提示”抱歉,你的IP地址不在被充許…”的解決方案
該問(wèn)題導(dǎo)致的結(jié)果:
1.DZ論壇可能無(wú)法獲得用戶的真實(shí)IP,導(dǎo)致某些用戶IP顯示的是CDN節(jié)點(diǎn)的IP
2.論壇訪問(wèn)量過(guò)大的話,可能會(huì)導(dǎo)致用戶訪問(wèn)時(shí)提示“抱歉,您的 IP 地址不在被允許,或您的賬號(hào)被禁用,無(wú)法訪問(wèn)本站點(diǎn)”
解決方法(DZ X2為例):
打開DZ /source/class/class_core.php 文件
找到第341行,或者搜索“HTTP_CLIENT_IP”,找到如下代碼:
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],
方法1:
刪除加紅的部分
方法2:
臨時(shí)注釋加紅部分,也就是比原來(lái)的代碼多了二對(duì)注釋符(/*和*/)即將上面的代碼修改成:
/*
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else
*/
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],
/*
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; }else
*/
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],
部分版本的Discuz!該文件中沒(méi)有加紅的第2部分,這種版本,您只需要?jiǎng)h除或注釋第一部分即可 |
|