Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

Apache 開啟 URL 重寫功能完整教學(mod_rewrite 啟用與配置)

編輯:關於伺服器

Apache 的 URL 重寫功能由 mod_rewrite 模組提供,廣泛應用於 SEO 優化、靜態化偽靜態、存取控制等場景。本文詳細說明如何檢查模組狀態、啟用模組、配置目錄權限,並驗證生效。

一、檢查並啟用 mod_rewrite 模組

1. 確認模組是否已編譯/載入

主流 Linux 發行版的 Apache 2.x 通常已內建 mod_rewrite.so。請開啟 httpd.conf 搜尋:

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
# 或
LoadModule rewrite_module lib/apache2/modules/mod_rewrite.so

若行首有 # 號請移除。模組檔案常見路徑:

  • /usr/lib/apache2/modules/
  • /usr/lib/httpd/modules/

2. 驗證模組是否成功載入

執行以下指令查看已載入模組:

# /usr/sbin/httpd -M

輸出中若出現 rewrite_module (shared) 即表示模組已就緒。

二、配置 DocumentRoot 目錄權限(關鍵步驟)

URL 重寫依賴 .htaccess 檔案,必須在對應目錄啟用 AllowOverride All。

1. 設定 DocumentRoot

DocumentRoot "/opt/www"

2. 對應 Directory 區塊配置

<Directory "/opt/www">
    Options FollowSymLinks
    # AllowOverride None  ← 註解掉預設值
    AllowOverride All      ← 必須設為 All
    Order allow,deny
    Allow from all
</Directory>

說明:AllowOverride All 允許 .htaccess 覆蓋伺服器設定,包含重寫規則。若設為 None,.htaccess 將被忽略,重寫失效。

三、重啟 Apache 使配置生效

依發行版執行對應指令:

  • Slackware:# /etc/rc.d/rc.httpd restart
  • Ubuntu/Debian:# /etc/init.d/apache2 restart
  • Fedora/RedHat/CentOS:# /etc/init.d/httpd restart

四、常見問題排查

  • 重寫不生效:確認 AllowOverride All、.htaccess 存在且語法正確、模組已載入。
  • 500 Internal Server Error:檢查 .htaccess 語法錯誤,或 RewriteRule 導致無限循環。
  • 虛擬主機環境:若無法修改 httpd.conf,請確認主機商是否已啟用 mod_rewrite 並允許 AllowOverride。

五、應用場景舉例

成熟 CMS(Drupal、Joomla、WordPress)皆內建 .htaccess 重寫規則,僅需在後台開啟「URL 重寫」或「偽靜態」選項即可使用。

完成上述步驟後,Apache 的 URL 重寫功能即可正常運作,為網站提供靈活的 URL 管理能力。

Copyright © Windows教程網 All Rights Reserved