Por que ativar o log de reescrita em .htaccess não está funcionando?

Por que ativar o log de reescrita em .htaccess não está funcionando?

Quero ativar o log de reescrita para poder depurar uma regra de reescrita, mas adicionar as diretivas RewriteLog está causando um erro 500.

Versão informação:

Ubuntu 14.04

Server version: Apache/2.4.12 (Ubuntu)
Server built:   Feb  4 2015 14:22:06

conteúdo de.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteLog /var/log/apache2/rewrite.log
RewriteLogLevel 5

RewriteBase /

RewriteRule ^/wordpress/wp-content/(.*)$ /wp-content/$1 [L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

No log de erros, vejo:

/var/www/path.to/wordpress/.htaccess: Invalid command 'RewriteLog', perhaps misspelled or defined by a module not included in the server configuration

Responder1

Além de ter esquecido que o log não pode ser configurado em .htaccessarquivos, isso também acabou sendo um problema de versão do Apache. A diretiva RewriteLog foi substituída em versões mais recentes e adicionar o seguinte à configuração do Virtualhost habilitou o log de reescrita para mim:

LogLevel alert rewrite:trace3 (can be increased to trace8)

Do manual:

Aqueles familiarizados com versões anteriores do mod_rewrite sem dúvida procurarão as diretivas RewriteLog e RewriteLogLevel. Esta funcionalidade foi completamente substituída pela nova configuração de log por módulo mencionada acima.

Para filtrar essas mensagens no log de erros, você pode fazer algo como:

tail -f error_log|fgrep '[rewrite:'

Responder2

Não posso deixar de me repetir:

A maioria das pessoas que usam .htaccess e perguntam sobre isso no ServerFault não deveriam usar .htaccess em primeiro lugar, pois é uma solução de usuário final nunca destinada a administradores:

Você deveevite usar arquivos .htaccess completamentese você tiver acesso ao arquivo de configuração do servidor principal httpd. O uso .htaccessde arquivos torna seu servidor Apache http mais lento. Qualquer diretiva que você possa incluir em um arquivo .htaccess é melhor definida em um bloco Directory, pois terá o mesmo efeito com melhor desempenho.
Fonte: Manual do Apache

Aparentemente, a maioria das pessoas que publicam suas configurações parecem estarprogramadores de culto à cargainteressado em copiar arquivos .htaccess cegamente, sem entender os motivos.

Seu problema é um excelente exemplo: oRewriteLogdirectiva só é válida nocontextode uma configuração de servidor ou host virtual ...

Isso significa que énão permitidoem um .htaccessarquivo!

informação relacionada