Apache .htaccess <ifModule não permitido aqui

13

Executando o Apache no Ubuntu Precise, com PHP 5.5

Tentar acessar o meu var/www/me dá 500.

/var/log/apache2/error.log

mostra:

/var/www/web/.htaccess: <IfModule not allowed here

meu .htacess é:

DirectoryIndex app.php


<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>       
        RedirectMatch 302 ^/$ /app.php/       
    </IfModule>
</IfModule>

No meu apache.conf, adicionei:

<Directory />
AllowOverride ALL
</Directory>

E funcionou depois que reiniciei o apache.

Kiksy
fonte

Respostas:

25

Você precisa configurar seu apache para ativar a configuração a partir do arquivo .htaccess. Portanto, na seção de diretório, verifique se você tem a opção

Allowoverride ALL 

para obter mais informações, obter mais informações sobre a permissão de substituição .

Na sua configuração, se você usar apenas mod_rewrite, talvez possa definir apenas FileInfo, sempre defino o parâmetro Options como SymLinksIfOwnerMatch para poder executar o redirecionamento para outros sites.

Allowoverride FileInfo 
Options SymLinksIfOwnerMatch

Espero que ajude, se você já definiu essa configuração, adicione informações com sua configuração de host virtual.

Xerus
fonte
Esta é uma nova instalação do Apache. Eu não tenho nenhuma seção <Directory /> no apache2.conf. Eu adicionei minha atualização acima. Obrigado
Kiksy
Esqueci de reiniciar o Apache. Isso está funcionando agora.
Kiksy 6/08
1
Do meu lado, faltava uma Directorydiretiva. Uma vez adicionado, funcionou corretamente. Acho que isso é novo na versão 2.4 do Apache porque ele costumava trabalhar com 2,2 ...
Alexis Wilke
1
Sim, o valor padrão para Allowedoverride foi alterado no Apache 2.3.9.
mlissner