我有几个不同的虚拟主机创build,每个人都有自己的文件夹在/ var / www /像这样
/var/www/example1/ /var/www/example2/
现在,当我用www www.example1.com
inputurl时,它指向/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]