При отладке .htaccess хочется вывести на экран значение переменных или найденных строк. На stackoverflow есть решение:
# в переменную окружения TEST0 передаем требуемые данные
RewriteRule ^(.*) - [E=TEST0:%{DOCUMENT_ROOT}/blog/html_cache/$1.html]
# после чего показываем эту переменную в заголовке ответа TEST_FOOBAR
Header set TEST_FOOBAR "%{REDIRECT_TEST0}e"
Например, если мы хотим отладить отдачу картинок webp через .htaccess, то делаем так:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} ^(.+)\.(jpe?g|png)$
RewriteCond %1\.webp -f
RewriteRule ^(.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1,E=TEST0:%1\.webp]
</IfModule>
<IfModule mod_headers.c>
Header append Vary Accept env=REDIRECT_accept
Header set TEST_FOOBAR "%{REDIRECT_TEST0}e"
</IfModule>
AddType image/webp .webp
Более подробное логирование
В апаче можно включить логирование rewrite-правил: он будет объяснять что делает и почему. Но, к сожалению, такой лог нельзя включить через .htaccess, а значит на обычных хостингах работать не будет. Впрочем, можно включить его на своем локальном апаче и отладить там.
Он включается в настройках VirtualHost апача. Нужно указать:
LogLevel alert rewrite:trace8
Перезапускаем апач и теперь в error.log будет отображаться подробная информация по правилам .htaccess.
Комментариев нет:
Отправить комментарий