Почему включение журнала перезаписи в .htaccess не работает?

Почему включение журнала перезаписи в .htaccess не работает?

Я хочу включить ведение журнала перезаписи, чтобы иметь возможность отлаживать правило перезаписи, но добавление директив RewriteLog вызывает ошибку 500.

Информация о версии:

Ubuntu 14.04

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

содержимое.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>

В журнале ошибок я вижу:

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

решение1

В дополнение к тому, что я забыл, что ведение журнала не может быть настроено в .htaccessфайлах, это также оказалось проблемой версии Apache. Директива RewriteLog была заменена в новых версиях, и добавление следующего в конфигурацию Virtualhost включило для меня журнал перезаписи:

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

Из руководства:

Те, кто знаком с более ранними версиями mod_rewrite, несомненно, будут искать директивы RewriteLog и RewriteLogLevel. Эта функциональность была полностью заменена новой конфигурацией журналирования по модулям, упомянутой выше.

Чтобы отфильтровать эти сообщения в журнале ошибок, вы можете сделать что-то вроде:

tail -f error_log|fgrep '[rewrite:'

решение2

Не могу не повториться:

Большинству людей, которые используют .htaccess и спрашивают об этом на ServerFault, вообще не следует использовать .htaccess, поскольку это решение для конечного пользователя, никогда не предназначенное для администраторов:

Вам следуетполностью избегайте использования файлов .htaccessесли у вас есть доступ к главному файлу конфигурации сервера httpd. Использование .htaccessфайлов замедляет ваш сервер Apache http. Любую директиву, которую вы можете включить в файл .htaccess, лучше установить в блоке Directory, так как это даст тот же эффект с лучшей производительностью.
Источник: Руководство Apache

По-видимому, большинство людей, которые публикуют свои конфигурации,программисты культа каргосклонен слепо копировать файлы .htaccess, не понимая причин.

Ваша проблема — яркий пример:RewriteLogДиректива действительна только вконтекстконфигурации сервера или виртуального хоста...

Это значит, что этоне допускаетсяв .htaccessфайле!

Связанный контент