Apache2 的 mod_rewrite 模塊允許你根據 URL 重寫規則對請求進行重定向和重寫。以下是如何使用 mod_rewrite 的基本步驟:
確保 mod_rewrite 已啟用:在 Apache 配置文件(通常是 httpd.conf
或 apache2.conf
)中,找到以下行并取消注釋(刪除行首的 #
):
LoadModule rewrite_module modules/mod_rewrite.so
然后重啟 Apache 服務器以使更改生效。
在你的網站配置文件(例如 /etc/apache2/sites-available/yourdomain.com.conf
)或 .htaccess
文件中啟用 AllowOverride
:
<Directory /var/www/yourdomain.com>
AllowOverride All
</Directory>
這將允許 .htaccess
文件中的重寫規則生效。如果你使用的是網站配置文件,請確保在其中添加重寫規則。
創建或編輯 .htaccess
文件(通常位于網站根目錄),并添加重寫規則。以下是一個簡單的示例:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
這個規則的解釋如下:
RewriteEngine On
:啟用重寫引擎。RewriteCond %{REQUEST_FILENAME} !-f
:如果請求的文件不存在(即不是一個實際文件),則應用以下規則。RewriteCond %{REQUEST_FILENAME} !-d
:如果請求的目錄不存在(即不是一個實際目錄),則應用以下規則。RewriteRule ^(.*)$ index.php/$1 [L]
:將所有請求重寫到 index.php
文件,并將原始請求路徑作為參數傳遞。[L]
標志表示這是最后一條規則,如果匹配則不再應用其他規則。保存 .htaccess
文件并重啟 Apache 服務器以使更改生效。
這只是一個簡單的示例,mod_rewrite 提供了許多其他功能和選項。你可以根據需要創建更復雜的規則。要了解更多關于 mod_rewrite 的信息,請查閱 Apache 官方文檔。