WordPress默認(rèn)安裝好之后使用的是絕對路徑抡医,例如:安裝的時(shí)候使用的是127.0.0.1的話英古,那么除了本機(jī)能正常訪問之外衡招,其他的ip訪問都會(huì)出現(xiàn)問題炸茧。如下圖:
因?yàn)樵诎惭b后二驰,數(shù)據(jù)庫中存儲了之前安裝時(shí)所使用的ip地址扔罪,并且在用戶訪問網(wǎng)站時(shí),調(diào)用了該地址桶雀。
如果將數(shù)據(jù)庫中該地址修改為當(dāng)前服務(wù)器的ip地址10.1.1.177矿酵,那么頁面能正常訪問。
但是如果WordPress的IP需要不斷的修改或者需要派發(fā)多個(gè)備份的話矗积,那么就需要框架在調(diào)用時(shí)全肮,使用相對地址或者能自動(dòng)識別當(dāng)前的ip地址。
查看網(wǎng)站的源代碼發(fā)現(xiàn)網(wǎng)站includes/option.php文件中存在函數(shù)get_option棘捣,該函數(shù)通過參數(shù)名來獲取數(shù)據(jù)庫中wp_options中的字段辜腺。
現(xiàn)在的要求是能使得wordpress使用任何ip都能正常解析,那么可以在這個(gè)函數(shù)中判斷參數(shù)為home或者siteul的請求乍恐,如有該請求不去查詢數(shù)據(jù)庫直接返回需要的地址评疗。
將函數(shù)進(jìn)行如下修改:在函數(shù)開始部分加上判斷并設(shè)置動(dòng)態(tài)的ip地址,如果網(wǎng)站設(shè)置在根目錄則不需要后面的/wordpress目錄茵烈,該目錄根據(jù)實(shí)際情況設(shè)置百匆。
修改完成之后再次訪問之前的兩個(gè)頁面便能正常解析了。