¿Por qué no funciona habilitar el registro de reescritura en .htaccess?

¿Por qué no funciona habilitar el registro de reescritura en .htaccess?

Quiero habilitar el registro de reescritura para poder depurar una regla de reescritura, pero agregar las directivas RewriteLog está provocando un error 500.

Información de versión:

Ubuntu 14.04

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

contenidos 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>

En el registro de errores veo:

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

Respuesta1

Además de haber olvidado que el registro no se puede configurar en .htaccessarchivos, esto también resultó ser un problema de la versión de Apache. La directiva RewriteLog ha sido reemplazada en versiones más recientes y agregar lo siguiente a la configuración de Virtualhost me habilitó el registro de reescritura:

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

Del manual:

Aquellos que estén familiarizados con versiones anteriores de mod_rewrite sin duda buscarán las directivas RewriteLog y RewriteLogLevel. Esta funcionalidad ha sido completamente reemplazada por la nueva configuración de registro por módulo mencionada anteriormente.

Para filtrar estos mensajes en el registro de errores, puede hacer algo como:

tail -f error_log|fgrep '[rewrite:'

Respuesta2

No puedo evitar repetirme:

La mayoría de las personas que usan .htaccess y preguntan sobre él en ServerFault no deberían usar .htaccess en primer lugar, ya que es una solución para el usuario final que nunca estuvo destinada a administradores:

Deberíaevite el uso de archivos .htaccess por completosi tiene acceso al archivo de configuración del servidor principal httpd. El uso .htaccessde archivos ralentiza su servidor http Apache. Es mejor configurar cualquier directiva que pueda incluir en un archivo .htaccess en un bloque de Directorio, ya que tendrá el mismo efecto con un mejor rendimiento.
Fuente: manual de apache

Aparentemente la mayoría de las personas que publican sus configuraciones parecen estarprogramadores de culto a la cargaLe gusta copiar archivos .htaccess a ciegas sin comprender los motivos.

Su problema es un buen ejemplo: elRewriteLogLa directiva sólo es válida en elcontextode una configuración de servidor o el host virtual...

Eso significa que esNo permitidoen un .htaccessarchivo!

información relacionada