Мы пишем много кода для htaccess, но какой метод отладки лучше всего, кроме обновления страницы?
Есть ли способ записать это в файл? или есть функция эхо / печати?
Просто как мне узнать, сколько у меня $ 1 $ 2 $ 3?
Попробуйте эти:
RewriteLog "/myfolder/mylogfile.log"
RewriteLogLevel 3
Это просто регулярные выражения с некоторыми дополнениями, поэтому вы можете использовать Regex тренер для первоначального тестирования URL-адресов или любых других инструментов отладки Regex.
Ура! :)
Вы можете попробовать метод, упомянутый в сообщении блога под названием Пара способов отладки 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]
Вот небольшой интересный прием, позволяющий «вывести» переменные из файла .htaccess.
Если для параметра AllowOverride установлено значение FileInfo, вы можете установить и запустить настраиваемый ответ об ошибке в вашем файле .htaccess с желаемыми переменными на выходе:
ErrorDocument 404 "Request: %{THE_REQUEST} Referrer: %{HTTP_REFERER} Host: %{HTTP_HOST}"
RewriteRule ^ - [L,R=404]
В зависимости от того, насколько вы креативны с выражения вы можете вывести много полезной информации!
Вы не ограничены использованием статуса 404 для вашего «отраженного» контента. Вы даже можете переопределить статус 200 «ErrorDocument», который в сочетании с <If>
Директивы могут помочь в некоторых других довольно интересных применениях этого хака для возврата содержимого непосредственно из файла .htaccess.