在 CentOS 系統中,Apache 服務器使用 mod_rewrite 模塊來實現偽靜態規則。首先確保已經啟用了 mod_rewrite 模塊,如果沒有啟用,請運行以下命令啟用:
sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpd
接下來,在 Apache 的配置文件(通常位于 /etc/httpd/conf/httpd.conf 或 /etc/httpd/conf.d/ 目錄下的某個文件)中添加以下內容:
<Directory "/var/www/html">
AllowOverride All
</Directory>
這將允許 .htaccess 文件覆蓋目錄級別的配置。
現在,在你的網站根目錄(例如:/var/www/html)下創建或編輯 .htaccess 文件,添加你需要的偽靜態規則。以下是一些常見的偽靜態規則示例:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
controller.php?action=home):RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)$ controller.php?action=$1&method=$2 [L]
example.com/about-us 重寫為 example.com/about-us.php):RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]
根據你的需求修改和添加相應的偽靜態規則。保存 .htaccess 文件后,重啟 Apache 服務器以使更改生效:
sudo systemctl restart httpd
現在,你的 CentOS 系統中的 Apache 服務器應該已經成功應用了偽靜態規則。