快速答案:首頁正常、其他頁全部 404,幾乎都是永久連結的改寫規則失效:到 設定 → 永久連結 什麼都不改直接按「儲存變更」,八成當場恢復。沒恢復就看網站根目錄的 .htaccess 是否遺失或被改掉。頁面突然變成文章列表則是「閱讀設定」或網址代稱撞名,不是 404 那一類。
為什麼會這樣 #
WordPress 的漂亮網址(/about/、/product/xxx/)靠一組改寫規則把網址轉交給 index.php 處理。首頁是根目錄,不需要改寫,所以永遠開得了;其他網址一旦規則失效就統統 404。Apache、LiteSpeed 主機的規則寫在 .htaccess,搬家沒帶到、資安外掛或快取外掛改壞它、檔案權限變成不可寫,都會發生。Nginx 主機不用 .htaccess,規則在主機端設定,換主機時漏掉也是同一種症狀。
另一種是規則本身過期:裝了新外掛新增了自訂內容類型、換了永久連結結構、或從測試站複製回來,資料庫存的規則還是舊的,重存一次就會重新產生。
「頁面變成文章彙整」是另一件事:靜態首頁被設回「最新文章」、當首頁的那一頁被轉成草稿或丟進回收桶、或某一頁的網址代稱跟分類、自訂內容類型的彙整代稱一樣(例如頁面叫 news,外掛也註冊了 news 彙整),WordPress 就用彙整範本蓋過那一頁。
怎麼處理 #
- 設定 → 永久連結 → 儲存變更。頁面底下若出現「.htaccess 無法寫入」並列出一段規則,代表要手動貼進去。
- 用主機檔案管理看根目錄有沒有 .htaccess,內容裡要有
# BEGIN WordPress到# END WordPress那段。沒有就建一個貼上規則;有但多了一堆不認識的規則,先備份再把它清回標準內容。 - 剛搬家或換網域:設定 → 一般 的 WordPress 位址與網站位址要是新網址;Nginx 主機請主機商確認改寫規則。
- 只有特定幾頁 404:看該頁狀態是否已發佈、網址代稱有沒有改過、連結尾端是否多了空白(會變成 %20)——從試算表複製網址最常這樣。
- 頁面變成文章列表:設定 → 閱讀 確認首頁顯示是「靜態頁面」且選對頁;再到 頁面 看那一頁是否在回收桶;還不對就改那一頁的網址代稱,避開分類與彙整代稱。
- 文章列表翻到某一頁 404、後台整個 404,分別是分頁設定與登入網址被改,處理方式不同。
- 改完清快取,用無痕視窗驗證。
我們實際遇過的情況 #
一個官網反映除了首頁以外的頁面全都 404,這正是改寫規則失效的典型症狀,處理重點就是上面第 1、2 步:重新產生規則、確認 .htaccess 完整。另一個站則是某一頁「不見了、變成文章彙整」,屬於第三種情況,從閱讀設定、回收桶到網址代稱依序查,不必去動永久連結。
還有一個站首頁輪播的按鈕連結會 404,網址本身沒錯,是資料裡尾端多了一個空格,前台輸出成 %20,來源多半是從表格複製網址時把空白一起帶進來,首頁與頁尾共清了好幾處。
什麼時候該找人 #
.htaccess 裡出現你沒寫過的轉址規則、根目錄多了不認識的檔案、或重存永久連結後幾小時又變回 404——這可能不是設定問題而是被入侵改檔,先看惡意轉址怎麼查;搬家後連帶多處壞掉,則對照搬家檢查清單。
WPTOOLBEAR網站工具熊