首頁打得開,點進去文章或頁面全部 404。
文章沒被刪、網址也沒改。到底怎麼回事?
先試一件事:後台「設定 → 永久連結」,什麼都不用改,直接按「儲存設定」。很多時候就這樣修好了。
內容導覽
操作步驟
左側選單 → 設定 → 永久連結。頁面載入後不用動任何選項,滑到最下面按「儲存設定」。回到前台重新點原本 404 的頁面。
整個操作不到 30 秒。
為什麼這招有效
永久連結不是 PHP 在處理的,是伺服器。
Apache 的做法是在 .htaccess 寫一條 mod_rewrite 規則:「找不到這個檔案?全部丟給 index.php。」Nginx 則是用設定檔裡的 try_files 做同一件事。
這些規則遺失或損壞的時候,伺服器收到 /2026/07/my-article/ 這種網址,在磁碟上找不到對應的檔案,直接回 404。
你按「儲存設定」的時候,WordPress 重新產生 .htaccess 裡的重寫規則。規則恢復了,伺服器就知道要把請求轉給 WordPress 處理。
什麼情況會讓規則壞掉
- 外掛更新時改壞了
.htaccess(安全外掛、快取外掛常見) - 搬家或還原備份時漏了
.htaccess(它是隱藏檔,容易被跳過) - WordPress 沒有寫入權限,上次改設定的時候就沒真的寫進去
- 主機商的自動安全掃描「清理」了它認為可疑的規則
幾個提醒
這不是萬能藥。重新儲存永久連結只修得了「重寫規則遺失」這一種 404。文章真的被刪了、外掛自訂路由衝突、Nginx 缺 try_files、自訂文章類型 slug 撞名,都不會被這招解決。但因為零成本,遇到莫名 404 第一個試它沒壞處。
Nginx 使用者注意:Nginx 不支援 .htaccess,WordPress 沒辦法自動寫重寫規則。「重新儲存永久連結」只會更新 WordPress 內部的路由設定,不會改伺服器設定。問題如果出在 Nginx,你需要手動改 server block 裡的 try_files。
如果你是「改了永久連結結構」而不只是重新儲存(例如從 ?p=123 改成 /文章名稱/),所有舊網址就會變成真正的 404。要設 301 轉址,不然 Google 已經索引的頁面會全掉。單純重新儲存不改結構的話沒這個問題。
總結
遇到莫名 404 → 第一步去永久連結按儲存,零成本
沒修好 → 再查外掛衝突、Nginx 設定、頁面是否真的不存在


