在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重写规则应该已生效。请根据你的需求修改示例中的重写规则。