我在 /etc/apache2/sites-available 下设置了 2 个域虚拟主机文件,
www.example.com.conf
example.com.conf
除了默认配置之外。我一直试图创建从 example.com 到 www.example.com 的重定向,但似乎不起作用,我不知道我哪里做错了。
在www.example.com.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName www.example.com
DocumentRoot /var/www/project
</VirtualHost>
在例如.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAdmin [email protected]
DocumentRoot /var/www
Redirect / http://www.example.com/
</VirtualHost>
添加它们后,我使用“a2ensite”进行了配置并重新启动了 Apache。但重定向不起作用。
答案1
假设 www 是裸域的规范别名,那么您实际上不需要两个 .conf 文件。
你只需要一个 .conf 文件
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/project
</VirtualHost>
可以用 激活a2ensite example.com
。
然后在 /var/www/project 中创建一个 .htaccess 文件
Options +FollowSymLinks -Multiviews
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]