Mod-Rewrite

為什麼在 .htaccess 中啟用重寫日誌不起作用?

  • February 27, 2015

我想啟用重寫日誌記錄,以便我可以調試重寫規則,但添加 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

除了忘記了無法在.htaccess文件中配置日誌記錄之外,這也是一個 Apache 版本問題。RewriteLog 指令已在較新版本中被替換,並將以下內容添加到 Virtualhost 配置為我啟用了重寫日誌:

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

從手冊:

那些熟悉 mod_rewrite 早期版本的人無疑會尋找 RewriteLog 和 RewriteLogLevel 指令。此功能已完全被上面提到的新的每模組日誌記錄配置所取代。

要過濾掉錯誤日誌中的這些消息,您可以執行以下操作:

tail -f error_log|fgrep '[rewrite:'

引用自:https://serverfault.com/questions/671716