Pastas vhost automáticas no apache 2.2

1

Eu tenho atualmente o seguinte na minha configuração vhost que está funcionando, no entanto eu gostaria de modificá-lo.

Atualmente, minha configuração vhost parece

<VirtualHost *:8080>
    ServerName dev
    ServerAlias *.dev

    CustomLog "/Users/owen/Sites/logs/dev-access_log" combinedmassvhost
    ErrorLog "/Users/owen/Sites/logs/dev-error_log"

    VirtualDocumentRoot /Users/owen/Sites/%-2+/httpdocs
</VirtualHost>

Por isso, encaminha automaticamente os URLs como http://owen.website.dev para /Users/owen/Sites/owen.website/

No entanto, eu gostaria de modificá-lo para que o prefixo owen seja automatizado, por exemplo, quando você visitar http://owen.website.dev , vai para /Users/owen/Sites/website/

Eu tentei simplesmente fazer

<VirtualHost *:8080>
    ServerName dev
    ServerAlias *.dev

    CustomLog "/Users/owen/Sites/logs/dev-access_log" combinedmassvhost
    ErrorLog "/Users/owen/Sites/logs/dev-error_log"

    VirtualDocumentRoot /Users/owen/Sites/owen.%-2+/httpdocs
    and
    #VirtualDocumentRoot /Users/owen/Sites/owen\.%-2+/httpdocs
</VirtualHost>

No entanto, sem sucesso, alguém poderia me fornecer o VirtuaDocumentroot correto para ativar esse vhost automatizado?

Obrigado

    
por Owen Melbourne 27.08.2015 / 19:03

1 resposta

1

Após tentativa e erro e decifrando o documento do apache, descobri que era tão simples quanto remover o - and + do caminho.

Então, se você usar

<VirtualHost *:8080>
    ServerName dev
    ServerAlias *.dev

    CustomLog "/Users/owen/Sites/logs/dev-access_log" combinedmassvhost
    ErrorLog "/Users/owen/Sites/logs/dev-error_log"

    VirtualDocumentRoot /Users/owen/Sites/%2/httpdocs
</VirtualHost>

A maneira como isso funciona eu acredito (mais do que provável, errado) se você imaginar que tem um URL parecido com

environment.project.dev - o apache explode por meio do . , fornecendo

$0 = environment.project.dev
$1 = environment
$2 = project
$3 = dev

como project é a pasta que você deseja carregar, você só precisa referenciar a variável $2 , deixando-me com

    VirtualDocumentRoot /Users/owen/Sites/%2/httpdocs

isso seria carregado no exemplo acima /Users/owen/Sites/project/httpdocs

Um dos benefícios disso é permitir que você tenha, por exemplo, em seu hostfile ou nível de DNS

192.168.1.50    matt.project.dev 
192.168.1.51    emily.project.dev
192.168.1.52    shaun.project.dev

você pode ver a versão de todo mundo do site com facilidade.

    
por 28.08.2015 / 16:18