Nomes de diretórios de subdomínio de caractere curinga

7

Eu tenho o seguinte na minha configuração do Apache:

<VirtualHost *:80>
  VirtualDocumentRoot /var/www/hosts/%0
  ServerAlias *.test.galapagos.office
</VirtualHost>

Em / var / www / hosts, eu tenho um diretório chamado jason.test.galapagos.office e um chamado bill.test.galapagos.office. Se eu for ao jason.test.galapagos.office em um navegador, recebo o que espero ver. O mesmo com a conta. Em outras palavras, tudo está funcionando perfeitamente.

No entanto, não estou muito satisfeito com o que está acontecendo. Em vez de /var/www/hosts/jason.test.galapagos.office e /var/www/hosts/bill.test.galapagos.office/, eu gostaria / home / jason / web e / home / bill / web .

Como posso dizer ao Apache para mapear esses subdiretórios?

Obrigado Jason

    
por Jason Swett 20.09.2010 / 19:46

2 respostas

14

Tente isto:

<VirtualHost *:80>
  #VirtualDocumentRoot /var/www/hosts/%0
  VirtualDocumentRoot /home/%1/web
  ServerAlias *.test.galapagos.office
</VirtualHost>

Eu acredito que enviou pedidos para "jason.test.galapagos.office" para "/ home / jason / web"

A lista completa das diretivas do VirtualDocumentRoot pode ser encontrada aqui:

link

0     the whole name
1     the first part
2     the second part
-1    the last part
-2    the penultimate part
2+    the second and all subsequent parts
-2+   the penultimate and all preceding parts
1+ and -1+     the same as 0
    
por 20.09.2010 / 19:57
1

Esta mudança pode funcionar?

VirtualDocumentRoot /home/%0/web

Ou você pode considerar ativar o mod_userdir, que por padrão seria parecido com http://test.galapagos.office/~bill/

    
por 20.09.2010 / 19:52