螢幕顯示 WordPress logo 的藍色筆電

← INSIGHTS & PERSPECTIVES | DevOps

WordPress 永久連結設定失效怎麼辦?排查原因與 Apache2 mod_rewrite 設定完整教學

WordPress 永久連結失效、頁面 404 時該怎麼辦?我整理了 .htaccess 重新生成、網址設定檢查、主題衝突排查,以及 Apache2 啟用 mod_rewrite 模組的完整步驟,讓伺服器正確支援永久連結。

WordPress 的永久連結(Permalink)設定失效時,文章網址會出現 404 錯誤。這篇文章整理我在自架伺服器上排查永久連結失效的四大原因,以及如何在 Apache2 上啟用 `mod_rewrite` 模組,讓永久連結正常運作。

WordPress 永久連結失效的可能原因有哪些?

遇到永久連結失效時,我會依照以下順序逐一排查:

  1. `.htaccess` 檔案不正常:進入 WordPress 的管理後台,點擊「設定」→「連結」,然後按下「儲存變更」。這樣 WordPress 會重新生成 `.htaccess` 檔案。如果這個步驟沒有解決問題,可以手動在 WordPress 安裝目錄中找到 `.htaccess` 檔案,並且檢查它是否存在。
  2. 確認 WordPress 是否在正確的網址上運行:如果 WordPress 安裝在子目錄或子網域下,請確認永久連結設定正確對應到子目錄這一點。
  3. 伺服器是否支援永久連結:如果伺服器不支援永久連結(例如 Apache2 未啟用 `mod_rewrite`),WordPress 將無法使用它們。
  4. 確認主題是否有問題:某些 WordPress 主題可能會干擾永久連結的正常運作。嘗試暫時更換到 WordPress 預設主題,並再次測試永久連結。

其中最常見的根因就是第 3 點——伺服器沒有啟用 rewrite 功能,接下來說明如何在 Apache2 上處理。

如何在 Apache2 啟用 mod_rewrite 支援永久連結?

要啟用 Apache2 的 `mod_rewrite` 模組,需要將以下內容加入 Apache2 的設定檔案中:

```bash

LoadModule rewrite_module modules/mod_rewrite.so

```

這個設定通常會加入到 `mods-enabled` 目錄中的一個設定檔案裡。例如可以建立一個名為 `rewrite.load` 的檔案,並將上面的設定加進去。步驟如下:

  1. 進入 `mods-available` 目錄:

```bash

cd /etc/apache2/mods-available

```

  1. 建立一個名為 `rewrite.load` 的檔案:

```bash

sudo touch rewrite.load

```

  1. 打開這個檔案並加入以下內容:

```bash

LoadModule rewrite_module modules/mod_rewrite.so

```

  1. 儲存並關閉檔案。
  2. 重新啟動 Apache2 伺服器,讓更改生效:

```bash

sudo service apache2 restart

```

mods-available 已有 rewrite.load 時,如何用符號連結啟用 rewrite?

如果 `/etc/apache2/mods-available` 目錄下已經有 `rewrite.load` 設定檔案,可以透過建立符號連結的方式來啟用 `mod_rewrite` 模組。步驟如下:

  1. 進入 `/etc/apache2/mods-enabled` 目錄:

```bash

cd /etc/apache2/mods-enabled

```

  1. 建立 `rewrite.load` 的符號連結:

```bash

sudo ln -s /etc/apache2/mods-available/rewrite.load

```

  1. 重新啟動 Apache2 伺服器,讓更改生效:

```bash

sudo service apache2 restart

```

執行完上述步驟後,Apache2 的 `mod_rewrite` 模組即會啟用。可以再次檢查 `/etc/apache2/mods-enabled` 目錄,確保 `rewrite.load` 的符號連結已經建立。若之後需要停用 `mod_rewrite`,刪除這個符號連結即可。

延伸閱讀

常見問題

QWordPress 永久連結變 404 的最常見原因是什麼?

最常見是伺服器沒有啟用 rewrite 功能。以 Apache2 為例,需要啟用 `mod_rewrite` 模組並重新啟動伺服器,永久連結才會正常運作。

Q重新生成 .htaccess 的最快方法是什麼?

進入 WordPress 管理後台的「設定」→「連結」,直接按下「儲存變更」,WordPress 就會重新生成 `.htaccess` 檔案。若無效,再手動檢查安裝目錄中的 `.htaccess` 是否存在。

Q如何確認 Apache2 的 mod_rewrite 已成功啟用?

檢查 `/etc/apache2/mods-enabled` 目錄中是否有 `rewrite.load` 的符號連結。有連結且 Apache2 已重新啟動,就代表模組已啟用。

Q如何停用 mod_rewrite 模組?

刪除 `/etc/apache2/mods-enabled/rewrite.load` 這個符號連結,再執行 `sudo service apache2 restart` 重新啟動 Apache2 即可。

QWordPress 裝在子目錄時,永久連結要注意什麼?

要確認永久連結設定正確對應到子目錄路徑,否則產生的網址會指向錯誤位置而回傳 404。同時 `.htaccess` 也必須位在正確的安裝目錄中。

參考資料

最後更新

2026-08-28(原文發布於 2023-05-11,本文保留原始筆記內容並補上 GEO 結構。)

關於作者 {#author}

Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。

首次發布:2023-05-11