Subdomínio automático Apache2 VirtualHost

4

Eu acabei de adquirir um novo servidor Linux (Debian Stable). O servidor é usado principalmente para webhosting e desenvolvimento web.

Eu instalei o Apache2, PHP5 e MySQL e tudo funciona.

A maneira como organizo meus sites é com o seguinte caminho: /var/www/username/website.com

Agora eu quero que o servidor automaticamente "crie" / reconheça subdomínios.

/var/www/username/sub.website.com > link

Eu quero que o acima aconteça automaticamente. Como fazer isso?

    
por Niklas H 13.02.2010 / 13:36

2 respostas

2

A melhor maneira de fazer isso seria colocar links para todos os sites em um diretório específico e fazer algo assim:

<VirtualHost *:80>
        RewriteEngine On
        RewriteMap lowercase int:tolower
        # if already rewitten and we have the right path, stop right here
        RewriteRule ^(/where/your/sites/are/[^/]+/.*)$ $1 [L]
        RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
        RewriteRule ^(www\.)?([^/]+)/(.*)$ /where/your/sites/are/$2/$3 [L,E=VHOST_ROOT:/where/your/sites/are/$2/]
</VirtualHost>
    
por 14.02.2010 / 00:00
1

Você pode usar hospedagem virtual em massa . No seu caso, você não poderá usá-lo na configuração principal do apache por causa de '/ username /' no caminho, mas você pode criar um host virtual por usuário e usar hospedagem virtual em massa no host virtual.

Exemplo:

<VirtualHost *:80>
ServerName domain.tld
ServerAlias *.domain.tld
VirtualDocumentRoot /var/www/user1/%0/
</VirtualHost>

<VirtualHost *:80>
ServerName domain2.tld
ServerAlias *.domain2.tld
VirtualDocumentRoot /var/www/user2/%0/
</VirtualHost>

...

Com mod rewrite você pode fazer domain.tld para reescrever para apontar para o diretório www

    
por 13.02.2010 / 16:40