什麼是 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 進行設定。
請依下列步驟操作:
- 登入 cPanel
- 開啟「檔案管理員」
- 右上角按下「設定」
- 勾選「顯示隱藏檔案(以 . 開頭)」
- 按「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 虛擬主機上需要手動啟用嗎?
Q2.WordPress 為什麼需要使用 rewrite?
Q3.看不到 .htaccess 如何處理?
Q4.RewriteRule 可以用來做資料夾或網址導頁嗎?
可以,例如將 /abc/ 自動導向到 /XYZ/,常用於網站改版、結構調整或 SEO 優化時維持舊流量。
延伸閱讀
更多 cPanel 相關操作:如何修改 cPanel 預設首頁檔案
文章來源:https://wpoki.com


GIPHY App Key not set. Please check settings
One Comment