DirectoryIndex funciona em htaccess, mas não em arquivos .conf do Apache2

DirectoryIndex funciona em htaccess, mas não em arquivos .conf do Apache2

Preciso que minha instalação do Ubuntu use index.php como arquivo padrão.

Adicionado

  DirectoryIndex index.php 

para /etc/apache2/apache2.conf

Adicionado

<Directory /path/to/website/root/>
    DirectoryIndex index.php 
</Directory>

para /etc/apache2/sites-available/mysite.conf seguido de ativação e reinicialização

sudo a2ensite mysite
sudo service apache2 restart

O que eu perdi? Ainda assim, o servidor não carregará um arquivo padrão.

NOTA: Adicionar DirectoryIndex index.phpao .htaccess causa o efeito desejado, mas eu preferiria fazer isso através do arquivo .conf.

Responder1

Onde você colocou o DirectoryIndex? Adicioná-lo ao .htaccess equivale a colocar a instrução em:

<Directory /path/to/htaccess/file/>
DirectoryIndex index.php
</Directory>

então tente adicionar uma instrução de diretório ao redor do DirectoryIndex. Um pouco hackeado, mas provavelmente funcionará? Se não, tente nos fornecer muito mais da sua configuração, como toda a configuração do vhost.

Responder2

Hoje tivemos um problema semelhante no SLES 11 SP4 com Apache 2.2 com uma configuração de apache praticamente padrão. O problema era que o Apache ignorava um arquivo index.html existente quando não era explicitamente chamado na URL. por exemplo, servidor.domínio.tld/dir/

Porém se chamado com arquivo explícito, ele veicula o conteúdo. por exemplo, server.domain.tld/dir/index.hmtl . então não houve problema com as permissões do sistema de arquivos. Todos os arquivos em htdocs tinham permissões suficientes para o grupo OTHERS . MAS todos os arquivos htdocs daquela época eram de propriedade de root.root . Portanto neste "Modo" o Apache não serviu index.html se não for mencionado na URL.

No momento em que alteramos recursivamente o diretório htdocs e os arquivos de volta para o proprietário "wwwrun.www", que é "padrão" no SLES (suse linux Enterprise Server) sem alterar as permissões em si, o Apache começou a servir o index.html novamente, como normalmente esperado. Não há reinicialização nem nada necessário.

não sei dizer se isso é um bug ou um recurso. só queria que você soubesse o que vivenciamos e o que resolveu o problema.

portanto, você pode verificar a propriedade dos arquivos htdocs e certificar-se de que eles pertencem à conta e ao grupo de serviço dos servidores da web.

Responder3

Tente usar a diretiva location.

<Location /path/to/htaccess/file/>
    DirectoryIndex index.php
</Location>

informação relacionada