apache2 aponta não-www para root em vez de pasta do website

2

Eu tenho poucos vhosts diferentes criados e cada um tem sua própria pasta em / var / www / like this

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

Agora, quando digito url com www www.example1.com , ele aponta para /var/www/example1/index.html , então, quando estou digitando, sem www example1.com , ele aponta para /var/www/ e consigo ver todas as pastas. não tem index.html em /var/www/ .

Eu procurei aqui e criei o .htaccess em / var / www /:

    RewriteEngine On
    RewriteBase /
    RewriteCond % ^example1.com [NC]
    RewriteRule ^(.*)$ http://www.example1.com/$1 [L,R=301]

mas não está funcionando.

É assim que todos os vhosts se parecem:

<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

Limpei o cache do navegador. Alguma idéia de como consertar isso?

    
por cikatomo 17.02.2013 / 18:17

2 respostas

3

A diretiva ServerName não aceita curingas, é isso que ServerAlias é para. Do manual

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

então você deve fazer algo como

ServerName example1.com
ServerAlias *.*example1*.com
    
por 17.02.2013 / 18:21
0

Você pode colocar o código a seguir na seção httpd.conf vhost do Apache ou no arquivo .htaccess.

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