Как вывести эхо из .htaccess?


13

Мы пишем много кода для htaccess, но какой лучший способ отладки, кроме обновления страницы?

Есть ли способ, которым я могу записать это в файл? или есть какая-то функция эха / печати?

Просто откуда мне знать, что такое мои $ 1 $ 2 $ 3?

Ответы:


8

Вы можете попробовать метод, упомянутый в сообщении в блоге под названием A Couple Ways to Debug mod_rewrite :


По сути, вы делаете дамп некоторой информации, которую mod_rewrite использует обратно в заголовки, затем используете расширения Firebug или LiveHTTP Headers в Firefox для просмотра заголовков и чтения информации отладки.

В .htaccess используйте условие и правило:

RewriteCond %{QUERY_STRING} !vardump
RewriteRule (.*) http://www.example.com/$1?vardump&thereq=%{THE_REQUEST}&reqhost=%{HTTP_HOST} [R=301,L,QSA]

Я бы предложил сделать перенаправление 302, чтобы избежать проблем с кэшированным результатом 301 в браузере после завершения теста.
IPSUS

9

Попробуйте эти:

RewriteLog "/myfolder/mylogfile.log" 
RewriteLogLevel 3

Это просто регулярные выражения с некоторыми дополнениями, поэтому вы можете использовать Regex Coach для первоначального тестирования по URL-адресам или любые другие средства отладки Regex.

Ура! :)


Очень полезный инструмент, но не забудьте удалить его после отладки, так как вы можете получить массивный файл журнала!
Coops

6
Видимо, это не работает в .htaccessфайлах. Это должно произойти, httpd.confчто означает, что это обычно не достижимо на учетных записях общего хостинга. :-(
Саймон Ист

2

Вот небольшой интересный хак для "вывода" переменных из файла .htaccess.

Если для AllowOverride задано значение FileInfo, вы можете установить и запустить пользовательский ответ об ошибке в файле .htaccess с нужными переменными в выходных данных:

ErrorDocument 404 "Request: %{THE_REQUEST} Referrer: %{HTTP_REFERER} Host: %{HTTP_HOST}"
RewriteRule ^ - [L,R=404]

В зависимости от того, насколько вы креативны с выражениями, вы можете вывести много полезной информации!

Вы не ограничены использованием статуса 404 в своем «отраженном» контенте. Вы даже можете переопределить статус 200 «ErrorDocument» - что в сочетании с <If>директивами может привести к некоторым другим довольно интересным способам использования этого хака для возврата содержимого непосредственно из файла .htaccess.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.