apache2指向非www而不是网站文件夹

我有几个不同的虚拟主机创build,每个人都有自己的文件夹在/ var / www /像这样

/var/www/example1/ /var/www/example2/ 

现在,当我用www www.example1.cominputurl时,它指向/var/www/example1/index.html所以工作正常,但是当我input没有www example1.com它指向/var/www/和我可以看到所有的文件夹,我没有/var/www/ index.html。

我在这里查看并在/ var / www /中创build.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 

我清除了浏览器caching。 任何想法如何解决这个问题?

ServerName指令不采用通配符,这是ServerAlias的用途。 从手册

ServerName [scheme://] fully-qualified-domain-name [:port]

所以你应该这样做

 ServerName example1.com ServerAlias *.*example1*.com 

您可以放置​​以下代码Apache的httpd.conf虚拟主机部分或.htaccess文件。

 RewriteEngine on RewriteCond %{HTTP_HOST} ^domain\.com RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]