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 官方文档。