在 Apache2 的 Ubuntu 版本中使用 mod_rewrite 模塊,可以讓你對 URL 進行重寫和重定向。以下是詳細的步驟指南:
首先,你需要確保 mod_rewrite
模塊已經啟用。你可以使用以下命令來啟用它:
sudo a2enmod rewrite
接下來,你需要在 Apache2 的虛擬主機配置文件中啟用 AllowOverride
指令,以便允許 .htaccess
文件中的重寫規則生效。
編輯你的虛擬主機配置文件,通常位于 /etc/apache2/sites-available/
目錄下。例如,如果你有一個名為 example.com.conf
的文件,可以使用以下命令編輯它:
sudo nano /etc/apache2/sites-available/example.com.conf
在 <Directory>
塊中添加或修改以下內容:
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
這里的 /var/www/html
是你的網站根目錄,根據實際情況進行修改。
保存并關閉文件后,重啟 Apache2 服務以使更改生效:
sudo systemctl restart apache2
在你的網站根目錄(例如 /var/www/html
)下創建或編輯 .htaccess
文件。這個文件將包含你的重寫規則。
例如,創建一個簡單的重寫規則,將所有請求重定向到 index.php
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
現在,你應該能夠測試你的重寫規則是否生效。訪問你的網站,看看是否按照預期進行了重定向。
假設你想將所有以 /category/
開頭的 URL 重寫到 category.php
,可以使用以下規則:
RewriteEngine On
RewriteRule ^category/([^/]+)/?$ category.php?cat=$1 [L,QSA]
這個規則會將 /category/electronics
重寫到 category.php?cat=electronics
。
.htaccess
文件的權限設置正確,通常應該是 644
。通過以上步驟,你應該能夠在 Apache2 的 Ubuntu 版本中成功使用 mod_rewrite
模塊。