Como o VHM funciona
Host Virtual com o Zope
A parte VHM das regras de reescritura ordinárias parecem com esta:
http://localhost:10080/VirtualHostBase/http/www.example.org:80/example_site/VirtualHostRoot/$1
O endereço tem sete partes:
Este é apenas para o módulo mod_proxy do Apache. Ele configura para que o servidor deve ser acessado, incluindo protocolo, host e porta. Neste exemplo o mod_proxy está acessando o ZServer na porta 100080 no mesmo host usando o http.
VirtualHostBase
Esta é uma palavra-chave mágica para iniciar o hosting virtual. Você não deve adicionar um objeto chamado VirtualHostBase à sua raíz do zope!
http
O primeiro caminho de segmento depois que o VirtualHostBase define o protocolo da url do vhost.
O segundo segmento depois do VirtualHostBase define o servidor e a porta. Junto ao protocolo está a base de parte da url, como neste exemplo http://www.example.org:80 .
Como o VirtualHostBase, o protocolo e o servidor não são objetos reais. Eles são apenas colocadas dentro da url com o propósito de configuração, e são retirados da url depois de configurar o host virtual para uma solicitação .example_site.
Agora a passagem real através do Zope começa. Depois, configura-se o protocolo e parte do servidor da nova url que estamos atravessando pelo Zope, para a nova raiz virtual do vhost. Você pode adicionar zero ou mais objetos aqui.
VirtualHostRoot
Finalmente a palavra-chave mágica que nós temos alcançado para a nova raíz virtual para o vhost. Tudo depois do VirtualHostRoot é visível para o navegador.
$1 and ^/(.*)
$1 and ^/(.*) são algumas das regex foo.^/(.*). Significam: "Una tudo que comece com a/ e salve cada caracter depois do / na variável $1".
Caso especial_vh_foo
Imagine que você queira ter http://www.example.org/foo/ como a url da sua url virtual. Você pode conseguir o efeito usando a declaração especial_vh. Qualquer caminho de segmento começando com _vh_ é retirado da url para passagem através do zope, e lido sem o _vh_ depois da passagem. Exemplo:
^/foo/(.*) \
http://localhost:10080/VirtualHostBase/http/www.example.org:80/example_site/VirtualHostRoot/_vh_foo/$1
Nota: você não tem permissão para criar um objeto chamado VirtualHostBase ou VirtualHostRoot no seu zope, nem mesmo deve adicionar um objeto com o mesmo id do seu VHM. Deve funcionar mas também quebrar o seu site.