Estou tentando configurar um subdomínio usando Hosts virtuais baseados em nome, de acordo com o formato de configuração em esta questão .
Pelo que entendi, isto:
Finally, you can fine-tune the
configuration of the virtual hosts by
placing other directives inside the
containers. Most
directives can be placed in these
containers and will then change the
configuration only of the relevant
virtual host. To find out if a
particular directive is allowed, check
the Context of the directive.
Configuration directives set in the
main server context (outside any
container) will be used
only if they are not overridden by the
virtual host settings.
deve significar que a tarefa de mover de um único host para 1 host + 1 subdomínio deve ser bastante direta. No entanto, quando adiciono as diretivas VirtualHost, me deparo com problemas.
Primeiro (e bastante catastrófico) é que a home page do domínio principal retorna um 403 (Proibido). Algum dos seguintes motivos poderia estar causando isso:
- O domínio principal existente tem um arquivo de configuração grande, com muitas configurações. Estou colocando as diretivas
VirtualHost
perto do final de httpd.conf
, logo após as instruções comentadas para hosts virtuais
- Há muitos
Redirect
s e Rewrite
s em um arquivo incluído após o VirtualHost
s - eles poderiam estar entrando em conflito?
- Eu coloquei o mínimo absoluto nas diretivas
VirtualHost
, porque quero mantê-lo o mais simples possível. Seria melhor mover o conteúdo do antigo httpd.conf
em um arquivo separado (por exemplo, main-domain.conf), Include
em um VirtualHost
e criar um arquivo conf separado para o subdomínio, incluindo esse na segunda diretiva VirtualHost
?
- Por fim, existe uma maneira simples de depurar isso, tendo em mente que estou trabalhando com um site ativo, portanto, qualquer alteração deve ser testada muito rapidamente!
Atualizar
OK, o erro é, mais especificamente:
Directory index forbidden by rule
Outras páginas parecem funcionar OK, então deve haver algum tipo de problema com um redirecionamento da página inicial. Eu acho que isso foi em parte porque eu perguntei se há confrontos conhecidos entre as configurações do VirtualHost e Redirect
s / Rewrite
s.
Um bloco <Directory "/path/to/docroot">
que corresponda ao bloco DocumentRoot
em VirtualHost
seja antes ou depois do último (ou não importa)?
Atualização 2
OK, parece que o que não acontece é o seguinte redirecionamento:
RewriteRule ^/$ /path/to/something/else [PT]
que eu estou supondo que está acontecendo por uma das duas razões:
-
A configuração atual não está nem tentando processar este rewriterule. A regra em si está em um arquivo Include
d, após os blocos VirtualHost
.
-
A regra não está mais correspondendo porque a diretiva VirtualHost
está causando falha na correspondência de padrões. Isto parece, de longe, o mais provável ...
Atualização 3
Alguém acha que isso pode ser relevante?
Note that, by default, rewrite configurations are not inherited. This means that you need to have a RewriteEngine on directive for each virtual host in which you wish to use it.
Em outras palavras, isso significa que eu preciso:
<VirtualHost *:80>
RewriteEngine on
</VirtualHost>
para cada VH que precisa lidar com o material Rewrite *, em vez de depender apenas de RewriteEngine on
no arquivo global incluído?
Atualização 4
Infelizmente, a mudança mencionada na Atualização 3 não corrigiu o problema