У Апача есть интересная директива для отладки модуля mod_rewrite.
Документация: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog
Описание: Устанавливает имя файла используемое для ведения журнала механизма преобразования
Синтаксис: RewriteLog file-path
Контекст: server config, virtual host
Статус: Расширение
Модуль: mod_rewrite
Директива RewriteLog устанавливает имя файла в котором сервер ведет журнал любых происходящих действий по преобразованиям URL. Если это имя не начинается со слэша (‘/’) в этом случае путь считается от Server Root. В конфигурационном файле сервера эта директива должна встречаться только один раз.
RewriteLog "logs/dummy-host.somenet-rewrite.log"
Для отключения ведения журнала преобразований не рекомендуется устанавливать Filename в /dev/null, потому что хотя механизм преобразований и не производит вывод в файл журнала в этом случае, внутри он все ещё ведет журнализацию. Это замедлит сервер без каких-либо преимуществ для администратора! Для отключения ведения журнала либо удалите либо закомментируйте директиву RewriteLog либо используйте RewriteLogLevel 0, диапазон значений от 0 до 9 — записываются почти все действия модуля.
Пример:
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.somenet DocumentRoot "D:/usr/apache2/docs/dummy-host.somenet" ServerName dummy-host.somenet ServerAlias www.dummy-host.somenet ErrorLog "logs/dummy-host.somenet-error.log" CustomLog "logs/dummy-host.somenet-access.log" common RewriteLog "logs/dummy-host.somenet-rewrite.log" RewriteLogLevel 3 </VirtualHost>