Welcome to WebmasterWorld Guest from

Forum Moderators: Ocean10000 & incrediBILL & phranque

Message Too Old, No Replies

Error when enabling the rewrite log

Error enabling rewrite log with the RewriteLog directive

9:34 am on Dec 19, 2012 (gmt 0)

New User

5+ Year Member

joined:May 18, 2011
posts: 22
votes: 0

Hello, I'm using Apache on Windows with the XAMPP bundle, and I'm having a problem nobody seems to know why (I didn't get any answer in the official XAMPP forum).

What I need is to enable the rewrite log in order to debug some rewrite rules that are not working as expected. So this is what I did at the end of my httpd.conf file, making sure the module is being loaded:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "/logs/rewrite.log"
RewriteLogLevel 4

I was said to use <IfModule rewrite_module> instead because the other one was incorrect, and I even tried without the IfModule tags. When I restart Apache with these directives, it doesn't start and I get this error message in the XAMPP control panel:

13:14:56 [Apache] Error: Apache shutdown unexpectedly.
13:14:56 [Apache] This may be due to a blocked port, missing dependencies,
13:14:56 [Apache] improper privileges, a crash, or a shutdown by another method.
13:14:56 [Apache] Check the "/xampp/apache/logs/error.log" file
13:14:56 [Apache] and the Windows Event Viewer for more clues

I don't get any clue when looking in error.log. In fact no error line is generated when this occurs. I also tried removing RewriteEngine On, with an absolute path:

RewriteLog "c:\xampp\apache\logs\rewrite.log"

Seems like my Apache configuration doesn't admit this directive. Your help would be really appreciated.
11:14 am on Dec 19, 2012 (gmt 0)

New User

5+ Year Member

joined:May 18, 2011
posts: 22
votes: 0

Problem solved!

Apache 2.4 doesn't use the RewriteLog directive anymore. Instead, you must append this command mod_rewrite.c:traceX to the LogLevel line, where X represents the verbosity level from 0 to 8. Then if you have, like in my default case, LogLevel warn, and I want a level 4, you should do this in httpd.conf:

LogLevel warn mod_rewrite.c:trace4

Rewrites will be logged in the error.log or wherever you defined the errors log. This is a little inconvenience because as far as I know, it's not possible to use another log.

I hope this helps anyone else who bumps into the same problem.