首頁正常、文章卻全部 404?排查 WordPress 固定網址與伺服器重寫規則

先確認這是哪一種 404

首頁載入正常,但點進文章固定網址或分類頁就看到 404,常見原因是漂亮網址沒有正確轉交給 WordPress。這篇適用於「首頁可開、固定網址文章或分類頁出 404」。如果首頁也無法開啟,或畫面是 403 權限拒絕、500 伺服器錯誤,先處理網站可用性、權限或伺服器錯誤;那不是單純固定網址問題。

先抄下出錯的完整網址(包含網域、路徑及是否有 www),並記下發生時間。不要先改網址結構、停用全站外掛或清快取;先用一篇確定已發布的文章,分辨是內容本身還是重寫規則出問題。

用同一篇文章比對兩種網址

  1. 從 WordPress 後台「文章」開啟一篇已知文章,記下文章 ID。編輯網址通常會帶有 post=123 之類的數字;將實際 ID 代入 https://你的網域/?p=123。
  2. 在無痕視窗分別開啟原本出錯的固定網址,以及 /?p=文章ID。確認兩者使用同一主機名稱與協定;例如 www 與非 www、http 與 https 不要混為一談。
  3. 若 ID 網址可開、漂亮網址 404,問題較像伺服器沒有把路徑重寫至 WordPress。若兩者都 404,先檢查文章狀態、ID、網域及是否有登入狀態造成差異。

「設定 → 固定網址」可確認目前使用的結構;WordPress 官方說明固定網址適用於文章、頁面及分類/標籤彙整,詳見固定網址設定畫面說明。

先做不改網址的修復

  1. 在後台確認文章狀態為「已發布」,而非草稿、私人或排程;檢查文章 slug 拼字、分類及所屬路徑。再確認瀏覽器網址的網域確實是目前網站使用的主機名稱。
  2. 前往「設定 → 固定網址」,記下目前選取的結構及自訂分類/標籤前綴,保持原本設定不變。WordPress 說明指出,進入固定網址設定頁會刷新重寫規則;若只是刷新,不必切換結構或反覆儲存。如果你確實更改了設定,再按「儲存變更」並確認頁面出現儲存成功提示。
  3. 重新開啟剛才測試的漂亮網址。成功後再測至少兩篇不同文章、一個分類頁,以及一條既有分享連結。不要只以後台預覽或首頁正常判定修復完成。

預期結果是原網址回傳文章或分類內容,不再是 404;原分享連結仍指向正確頁面。WordPress 官方的自訂固定網址說明指出,固定網址會用於分享內容與搜尋索引,因此不要把切換結構當成無影響的修復。若確實需要更改網址,應先規劃舊網址到新網址的一對一 301 轉址。

依失效範圍縮小原因

測試結果優先檢查
所有漂亮網址都 404,ID 網址可用伺服器 rewrite、WordPress 規則未套用或代理設定
只有少數舊文章 404文章狀態、slug 是否改過、分類路徑、舊分享網址及轉址/canonical 外掛規則
文章可開,分類頁 404分類是否存在、分類網址前綴,以及影響彙整頁的自訂規則
首頁也失效或出現 403/500轉向一般主機、權限或伺服器錯誤排查

若只是一條舊網址失效,檢查文章是否仍公開、slug 是否更改、分類路徑是否不同,以及 redirect 或 canonical 外掛是否把網址導向錯誤位置。若所有漂亮網址同時失效,應優先請主機商確認 rewrite,而不是逐篇改文章。

Apache:檢查 .htaccess 前先備份

若確認網站使用 Apache,登入主機控制台的檔案管理器,開啟網站實際根目錄(可能是 public_html、htdocs 或其他目錄)。在檔案管理器設定中開啟「顯示隱藏檔案」,找到 .htaccess,先下載一份或複製成含日期的備份,再以文字方式查看。不要直接刪檔或貼上網路上的通用整份範本。

檢查是否有 # BEGIN WordPress 與 # END WordPress 區塊,以及區塊內是否出現 WordPress 畫面提供的規則;同時留意區塊外的自訂 redirect、存取限制或其他應用程式規則。若「設定 → 固定網址」頁面提供新的 rewrite 規則,且你已備份,也確認它適用於目前安裝位置,才謹慎更新 WordPress 區塊。只調整該區塊需要的內容,保留 BEGIN/END 之外所有自訂規則,切勿整份覆蓋或刪除。

WordPress 安裝在網站根目錄、子目錄或多站網路時,規則和路徑可能不同。若畫面沒有提供規則、無法判斷安裝路徑或規則用途,先停止編輯。Nginx 不使用 Apache 的 .htaccess;使用 Nginx 或代理/CDN 環境時,請主機商核對 Apache 的 mod_rewrite、AllowOverride,或提供符合實際環境的 rewrite 設定。不要照貼通用規則。

Apache 是否讀取 .htaccess,由主機的目錄設定決定。Apache 官方文件說明,AllowOverride None 會讓伺服器忽略 .htaccess;其中 RewriteRule 等重寫指令需要允許 FileInfo 類別(或由主機明確列出允許的指令)。請主機商在網站實際根目錄對應的設定中檢查,不要自行把整台伺服器或所有目錄改成 AllowOverride All。可參考 Apache 的.htaccess 官方說明與mod_rewrite 指令文件。

只有在已有線索指向外掛或佈景主題(例如最近更新後才發生、錯誤只影響特定內容),才考慮在測試站或使用不影響訪客的疑難排解模式逐項測試。這不是所有文章 404 時的第一步。WordPress 的疑難排解文件可作為後續參考;若只有 sitemap 回傳 404,那是另一個問題,可參考Rank Math Sitemap Index 404 排查。

驗證、停止條件與復原

修復後的驗收標準:原固定網址、文章 ID 網址、多篇不同文章、至少一個分類頁及原分享連結都能載入正確內容;瀏覽器網址沒有意外跳到錯誤網域或不存在的路徑。若任何一項仍 404,或更新規則後出現 403/500,停止繼續改檔,提供主機商出錯網址、測試結果(ID 網址是否可用)、伺服器類型及發生時間,請其檢查伺服器日誌與 rewrite 設定。

復原時,若曾改固定網址結構,回到「設定 → 固定網址」選回先前記錄的結構並儲存;若編輯過 .htaccess,以備份還原原檔,再請主機商確認規則。

總結

首頁正常而文章 404,先比對同一篇文章的漂亮網址與 /?p=文章ID,再確認內容狀態、網域並刷新原固定網址設定。只有在問題仍存在且伺服器是 Apache 時,才備份並檢查根目錄規則;不確定伺服器或安裝型態,就把測試結果交給主機商核對。修復後逐項驗收,若網址有變更則安排 301,保護既有分享連結與搜尋索引。

相連文章

臉書留言

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *