修改WordPress主題導致整個站點404無法訪問

今天下午發現自己用WordPress搭建的站點www.hainter.com的主題有一些bug,決定對其進行一些修改。

由於主題原先並不是自己設計的,是在知更鳥的Ality主題基礎上修改的,所以對於裏面的每個文件之前並沒有做過很多深入研究。

改了一下午,在本地用USBWebServer實現的站點中進行調試通過,然後用FTP客戶端上傳到站點,直接替換現有主題。替換完了刷新頁面竟然無法訪問了,瀏覽器中顯示404錯誤。

遇到這個錯誤,第一反應是網絡的問題,因爲是國外服務器,偶爾出現404感覺也正常。刷新了幾次還是404,打開百度正常,說明能上網,之前也沒出現過這種404錯誤。打開cmd輸入ping hainter.com發現可以ping通,另外FTP也可以連接上,看來很可能不是網絡的問題了。

然後用手機Chrome瀏覽器試了一下,發現也打不開,提示無法識別內容。這次排除了電腦的問題。

於是問題很可能就出在主題上了,因爲剛剛改動的主題。首頁打不開,可能是首頁的一些程序代碼有錯,然後就輸入了其他頁面的地址,也都打不開。直接輸入網站後臺的地址,竟然也打不開,顯示的錯誤也是一樣。一般情況下,如果主題出錯,至少不至於影響後臺,畢竟後臺界面都是WordPress自帶的,不需要過多的依賴主題。

沒辦法,這時只能通過FTP來解決問題了。把當前用的主題文件夾改名了,再把另一個主題改成當前主題的文件夾名,結果一刷新竟然就可以訪問了。

由於主題在本地調試一切正常,按理說主題應該不會有問題的,可能是FTP傳輸出錯。就把主題文件全部重新傳了一遍,還特地對比了一下文件大小。在網站後臺的主題設置界面,點擊預覽主題,發現其他的主題都可以預覽,但是一點開今天修改的主題,整個頁面就什麼都沒有。

在網上找了一圈,WordPress 主題 404,但是找到的結果都說的是WordPress主題中添加404頁面,沒有找到我需要的結果。

由於所有的頁面都打不開,所以猜測可能出題處在一些公共的文件中,例如header.php,footer.php中。因爲有修改之前能用的版本,所以從網上找了個文件夾內容對比軟件Beyond Compare,對文件夾進行對比,由於主題中文件很多,發現一下午很多文件都被改過,一下子也不好檢查是哪些文件的問題。

決定通過文件直接替換的方式找到錯誤所在。打開WordPress的調試模式(wp-config.php中修改define('WP_DEBUG', true)),設置成修改前可用的主題版本。每次上傳若干主題文件的新版本,覆蓋舊版本,刷新頁面可訪問,則初步排除這些文件。最後錯誤文件定位到了一個子文件夾中的十個文件(也就是這十個新版本文件覆蓋進去,網站就打不開了)。再把舊版本文件一個一個替換新版的文件,終於有個文件被替換成舊版本後又能訪問了,於是找到了問題文件。

對比了一下這個文件的兩個版本,只有很短的幾行,唯一的區別是編碼不一樣。原先的文件是ANSI編碼,我用SublimeText打開時發現顯示的是亂碼(Sublime默認使用UTF-8編碼顯示),就用Notepad++將其轉換成了UTF-8編碼保存,在Sublime中打開就沒有亂碼了。本來沒在意這個,覺得編碼應該沒啥問題,何況其他的文件也是UTF8編碼。

這次具體的看了一下,發現其他的文件在Notepad++中顯示的全部都是UTF-8無BOM格式,而這個文件被我轉換的是UTF-8格式。修改了編碼格式,再上傳,竟然就一切正常了。


在本地使用很正常,到了遠程服務器上就不能用了,可能是服務器配置的原因吧。於是記錄下來,沒準有人也會遇到這個問題,可以作爲參考。

本文由jzj1993原創,轉載請註明來源 http://www.hainter.com/wordpress-theme-404

發佈了124 篇原創文章 · 獲贊 142 · 訪問量 48萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章