Usando a diretiva ServerPath
Antigamente, usuários do HTTP/1.0 não enviavam cabeçalhos para o Apache e não se tinha ideia de qualquer host virtual que o cliente tentou acessar. Para fornecer a compatibilidade retroativa possível, é possível criar um host primário que volta a página contendo links para os hosts virtuais que não são endereços de IP.
<VirtualHost172.20.30.40># primary vhostDocumentRoot/www/subdomain RewriteEngineOnRewriteRule./www/subdomain/index.html # ...</VirtualHost><VirtualHost172.20.30.40>DocumentRoot/www/subdomain/sub1 ServerName www.sub1.domain.tld ServerPath/sub1/RewriteEngineOnRewriteRule^(/sub1/.*)/www/subdomain$1 # ...</VirtualHost><VirtualHost172.20.30.40>DocumentRoot/www/subdomain/sub2 ServerName www.sub2.domain.tld ServerPath/sub2/RewriteEngineOnRewriteRule^(/sub2/.*)/www/subdomain$1 # ...</VirtualHost>
Devido diretiva ServerPath
, uma solicitação para o URL http://www.sub1.domain.tld/sub1/
é sempre servida a partir do sub1-vhost.
Uma solicitação para o URL http://www.sub1.domain.tld/
só é fornecida a partir do sub1-vhost se o cliente enviar um Host com cabeçalho correto.
Sem isso, o cliente vai para uma página de informações do host principal.
As diretivas RewriteRule
são usadas para garantir que um cliente que enviou um cabeçalho de host correto, que possa suas variantes de uma URL.