我创建了几个不同的 vhost,每个 vhost 在 /var/www/ 中都有自己的文件夹,如下所示
/var/www/example1/
/var/www/example2/
现在,当我输入带有 www 的 url 时,www.example1.com
它指向,/var/www/example1/index.html
因此工作正常,但是当我输入不带 www 的 url 时,example1.com
它指向/var/www/
,并且我可以看到所有文件夹,但我没有 index.html /var/www/
。
我看了这里并在 /var/www/ 中创建 .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond % ^example1.com [NC]
RewriteRule ^(.*)$ http://www.example1.com/$1 [L,R=301]
但它不起作用。
所有虚拟主机的样子如下:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName *example1*
ServerAlias *.*example1*
DocumentRoot /var/www/example1
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/example1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
我已经清除了浏览器缓存。有办法修复吗?
答案1
答案2
您可以将以下代码放置在 Apache 的 httpd.conf vhost 部分或 .htaccess 文件中。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]