Pergunta

Este é o problema oposto da maioria sobre o que eu li. Estou executando o Ubuntu 8.04 em uma instância Amazon com o Apache 2.2.8 e eu não consigo descobrir por que a configuração AllowOverride para Nenhum para o root não pára meu arquivo .htaccess sejam incluídos.

Eu tenho um sub-diretório com hello.py nele e um arquivo .htaccess. Quando eu procurar o arquivo, ele funciona bem com versão ModPython servindo o arquivo. Se eu colocar algum lixo no .htaccess recebo um erro de servidor, então eu sei o arquivo .htaccess está sendo usado. Além disso, se eu excluir o arquivo .htaccess, hello.py não é mais servidor versão ModPython -. Em vez as tentativas do navegador para abri-lo

Em um dos meus sites-available (ligada em sites-enabled), eu tenho "AllowOverride None" para o diretório raiz. Eu pensei que isso impediria .htaccess seja incluído de raiz e todos os seus sub-diretórios que deve causar hello.py não para ser servido por mod_python. No entanto, continua a ser servido bem e eu posso testar se .htaccess ainda está sendo incluída porque quando eu modificá-lo, eu vejo os resultados no meu navegador.

Talvez haja algo que eu não estou entendendo sobre o meu arquivo em sites de habilitado. Este é o arquivo que estou usando:

NameVirtualHost *:8080 
<VirtualHost *:8080>
<Directory />
AllowOverride None
</Directory>
</VirtualHost>

Obrigado por qualquer ajuda.

Foi útil?

Solução

A razão o arquivo não é servido via mod_python quando você exclui .htaccess é porque a configuração para mod_python está localizado na mesma. Se você mover esse material para arquivar seus sites-available, você pode excluir .htaccess, fechar os olhos para o problema, e chamá-lo um dia.

Se isso não satisfazê-lo, então por que motivo .htacess está sendo lido em tudo, eu não posso dizer. Está certo que AllowOverride None deve impedir que o arquivo já está sendo lido. Já considerou a possibilidade de que você errou alguma coisa ao adicionar o site virtual? Tente jogar algum lixo na config e ver se ele se queixa, só para ter certeza de que ele está sendo lido em tudo.

Outras dicas

AllowOverride só é permitido em <Directory>-seções, de modo que você fez tudo certo.

Um problema que você pode ter é que outras (sub-) <Directory>-seções definir AllowOverride a diferentes algo que None. Que irá substituir a configuração para esses subdiretórios. Eu uso

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride AuthConfig 
    Order allow,deny
    allow from all
</Directory>

e em /var/www (meu docroot) eu posso usar .htaccesses.

A razão pela qual mod_python não funciona mais se você excluir seu .htaccess é que a instalação mod_python é geralmente em arquivos .htaccess.

Se precisar de mais informações, por favor envie-nos a sua configuração.

PS: Na verdade, a docuementation ligada acima diz que você deve não set AllowOverride para algo não None em <Directory />

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top