在Apache2中,配置URL重写通常使用mod_rewrite模块。以下是配置URL重写的步骤:
mod_rewrite模块已启用。在终端中运行以下命令来启用它:sudo a2enmod rewrite
然后重启Apache2服务:
sudo systemctl restart apache2
.htaccess文件。例如,如果你的网站根目录是/var/www/html,则在该目录下创建或编辑.htaccess文件:sudo nano /var/www/html/.htaccess
.htaccess文件中添加重写规则。以下是一个简单的示例,将所有非www请求重定向到www:RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
这个示例中,RewriteEngine On表示启用重写引擎,RewriteCond定义了一个条件,RewriteRule定义了重写规则。
保存并关闭.htaccess文件。
如果你的Apache2配置使用了AllowOverride指令,并将其设置为None,则需要在虚拟主机配置文件中将其更改为FileInfo或All。例如,在/etc/apache2/sites-available/000-default.conf文件中找到以下行:
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
将其更改为:
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
然后重启Apache2服务:
sudo systemctl restart apache2
现在,你的URL重写规则应该已生效。请根据你的需求修改示例中的重写规则。