in ,

mod_rewrite 是什麼?完整解析在 cPanel 主機上的用途與常見使用情境

簡單理解 mod_rewrite 作用,掌握網址重寫與導頁的必備觀念


什麼是 mod_rewrite?為什麼網站一定會用到?

mod_rewrite 是 Apache 網頁伺服器提供的 URL Rewrite 模組,用來將訪客請求重新導向不同的路徑、處理 SEO 友善網址、強制跳轉與路由判斷等。許多網站與架站程式(例如 WordPress、Joomla、Laravel 等)都非常依賴此功能,因此它可說是 Linux 網站環境中最重要的模組之一。

在大多數的 Linux 虛擬主機(例如使用 cPanel 控制台 或 Plesk)中,mod_rewrite 通常已預設啟用,用戶無需手動開啟,只需在網站根目錄放置 .htaccess 規則即可正常運作。

mod_rewrite 的主要功能包括:

  • 產生 SEO 友善網址(Pretty URL)
  • 自動導向新網址或新資料夾
  • HTTP → HTTPS 加密轉向
  • 統一 www / 非 www
  • 後端程式路由導向(如 MVC Framework)
  • 阻擋特定 User-Agent 或保護檔案存取

mod_rewrite 常見完整用途分類

以下整理出網站最常使用的 rewrite 用途,採分項說明,協助使用者瞭解實際情境:

1. SEO 友善網址(Pretty URL)

將原本的:

/post.php?id=123

轉換成:

/my-article-title

大部分 CMS(WordPress、Drupal 等)都使用 rewrite 將所有頁面導入主程式處理,因此此功能必備。

2. 導頁與路徑管理(Redirect Mapping)

常用於網站改版、資料夾搬移或後台位置變更,例如:

/abc/ 自動導向 /XYZ/

3. HTTP → HTTPS 強制加密

確保所有流量自動導向 SSL 加密連線,提升安全性與 SEO。

4. www / non-www 統一網址格式

避免重複內容(Duplicate Content),對 SEO 來說非常重要。

5. 將副檔名導向程式(Rewrite to Handler)

例如:/image/abc.jpg 實際上轉給 image.php?file=abc 處理,常見於圖片裁切、下載管理等功能。

6. 控制檔案或資料夾存取

可阻擋指定 User-Agent、限制特定資料夾直接瀏覽或保護重要程式。

7. 移除或新增尾部斜線(Trailing Slash)

統一網址格式,提升搜尋一致性。

RewriteEngine 與 .htaccess 的功能與關係

要使用 rewrite,必須在 .htaccess 中啟用轉寫功能,最基本的語法如下:

RewriteEngine On

啟用後就能在檔案中撰寫更多 RewriteRule、RewriteCond 規則,運作範圍從當前資料夾開始生效。

  • RewriteEngine On=啟用 URL 轉寫
  • 規則會自上而下依序判斷執行
  • WordPress、框架等系統會自動產生完整規則

如何在 cPanel 顯示 .htaccess 隱藏檔案

如果在 public_html 看不到 .htaccess,可以透過 cPanel 進行設定。
請依下列步驟操作:

  1. 登入 cPanel
  2. 開啟「檔案管理員」
  3. 右上角按下「設定」
  4. 勾選「顯示隱藏檔案(以 . 開頭)」
  5. 按「GO」即可看到檔案

示意圖如下:





WordPress rewrite 規則示例與用途

WordPress 的永久連結功能是最常見的 rewrite 使用情境之一。為了讓文章網址更友善,WordPress 會將所有訪客請求導入 index.php 進行路由判斷。

以下為常見的 WordPress rewrite 規則:

RewriteEngine On

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

此規則的作用如下:

  • 排除實體檔案(!-f)與資料夾(!-d
  • 其餘所有網址都交給 WordPress 處理
  • WordPress 會依據網址路由顯示文章、頁面、分類等內容

實例教學:/abc → /XYZ 的資料夾導頁

有時網站改版後,舊資料夾名稱會被替換,例如希望訪客造訪 /abc/ 時,能自動導向新的資料夾 /XYZ/。以下為常見規則示例:

RewriteRule /abc/(.*) /XYZ/$1 [R,NE]
  • [R]:執行轉址(Redirect)
  • NE:避免特殊字元編碼(No Escape)
  • 常用於網站路徑重整、後台更換位置、SEO 過渡期導頁處理

延伸用途:自動導向 HTTPS

rewrite 也能用來將所有 HTTP 流量強制導向 HTTPS,提高網站安全性與搜尋引擎信任。

更多內容可參考:虛擬主機cPanel 教學:如何設定 HTTP 自動導向 HTTPS

常見問題

Q1.mod_rewrite 在 cPanel 虛擬主機上需要手動啟用嗎?

大部分的 Linux + cPanel 主機都預設啟用 mod_rewrite,因此通常不需要額外開啟,只需在 .htaccess 中加入 RewriteEngine On 與相關規則即可。

Q2.WordPress 為什麼需要使用 rewrite?

因為 WordPress 的永久連結依賴 rewrite 將所有網址導入 index.php,再由 WP 內部判斷頁面內容,因此 rewrite 是其必要模組。

Q3.看不到 .htaccess 如何處理?

在 cPanel 檔案管理員中啟用「顯示隱藏檔案」即可看到 .htaccess。如果檔案不存在,可直接自行新增。

Q4.RewriteRule 可以用來做資料夾或網址導頁嗎?

可以,例如將 /abc/ 自動導向到 /XYZ/,常用於網站改版、結構調整或 SEO 優化時維持舊流量。

延伸閱讀

更多 cPanel 相關操作:如何修改 cPanel 預設首頁檔案

文章來源:https://wpoki.com

Written by 婷Z

發佈留言

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

GIPHY App Key not set. Please check settings

One Comment