Isso acontece porque, quando o Apache mostra o índice do diretório, ele avalia o link "Diretório pai", dependendo do DocumentRoot do host virtual e do diretório atual.
Eu acho que você usa o diretório /htdocs
para ser a raiz do documento folder1.dev
, folder2.dev
e todos os outros domínios .dev, e você coloca o seu .htaccess em /htdocs/.htaccess
.
Quando você vai para http://folder.dev/subfolder/
(a raiz do documento é /htdocs/
), seu .htaccess mostra /htdocs/folder/subfolder/
. O caminho relativo da raiz do documento para esse diretório é folder/subfolder
. Quando o Apache calcula o link do diretório pai de um diretório atualmente exibido, é preciso http://
+ folder.dev
+ dirname('folder/subfolder')
, ou seja, é igual a http://folder.dev/folder/
e NÃO apenas http://folder.dev/
como seria de se esperar.
Seria possível fazer o check-in do .htaccess, se o primeiro elemento do caminho após o nome do domínio for igual ao subdomínio e redirecionar para o root:
- Temos
http://folder.dev/folder/
. - Vemos essa "pasta" (subdomínio) == "pasta" (elemento do primeiro caminho).
- Redirecionar para
http://folder.dev/
.
Mas, se você fizer isso, não será possível acessar os caminhos como /htdocs/folder/folder/
, em que o primeiro elemento do caminho é de fato o mesmo que o nome do subdomínio.
Dado que, você não pode resolver este problema apenas com .htaccess e mod_rewrite.
Outras soluções:
- Use o host vitrual para qualquer pasta que você gostaria de acessar. Nenhuma magia de .htaccess exigida. As configurações do Vhost podem ser geradas a partir da lista de pastas. Solução mais flexível, pois é possível criar qualquer vhosts, com qualquer opção de configuração, para qualquer pasta onde quer que eles estejam.
- Use mod_vhost_alias . Mais fácil, não requer habilidades de script, mas pode exigir alterações na nomenclatura da pasta para conversão automática entre folder_name e document_root.
- Use HeaderName em .htaccess para adicionar o cabeçalho a todas as páginas de índice. Use o jQuery para alterar o link do diretório pai da maneira que desejar. Parece um hack sujo, mas vai funcionar.