Как отладить Apache mod переписать
У меня есть две основные проблемы с mod_rewrite:
1) нет никакой значимой ошибки, когда у меня есть недопустимое правило

2) чтобы надежно проверить каждую модификацию, я должен стереть кэш chrome. Это не ракетостроение, но я должен нажать Ctrl+Shift+Delete, затем нажмите OK, затем закройте окно и перезагрузите.
Я хотел бы посмотреть, если любой из гуру готовы поделиться своими секретами для эффективного управления mod_rewrite код.
5 ответов:
один трюк, чтобы включить переписывать журнал. Чтобы включить его,попробуйте эти строки в вашей основной конфигурации apache или текущем файле виртуального хоста (не на
.htaccess):RewriteEngine On RewriteLog "/var/log/apache2/rewrite.log" RewriteLogLevel 3С Apache httpd 2.4 mod_rewrite директивы RewriteLog и RewriteLogLevel были полностью заменены новой конфигурацией ведения журнала для каждого модуля.
LogLevel alert rewrite:trace6
директива LogRewrite, упомянутая Беном, больше не доступна в Apache 2.4. Вместо этого необходимо использовать директиву LogLevel. Е. Г.
LogLevel alert rewrite:trace6см.http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
для основного разрешения URL-адреса используйте выборщик командной строки, например
wgetилиcurlчтобы сделать тестирование, а не ручной браузер. Тогда вам не нужно очищать кэш; просто стрелка вверх и введите в оболочку, чтобы повторно запустить тестовые выборки.
здесь htaccess tester.
Он показывает, какие условия были протестированы для определенного URL, какие из них соответствовали критериям и какие правила были выполнены.
кажется, есть некоторые глюки, хотя.
на основе Бен вы можете сделать следующее при запуске apache на Linux (Debian в моем случае).
сначала создайте файл rewrite-log.загрузить
/ etc/apache2/mods-availabe / rewrite-log.загрузить
RewriteLog "/var/log/apache2/rewrite.log" RewriteLogLevel 3введите
$ a2enmod rewrite-log
затем
$ service apache2 restart
и, когда вы закончите с отладкой ваших правил перезаписи
$ a2dismod rewrite-log & & service apache2 restart
Comments