Я сделал это с ведением журнала отладки Isapi_Rewrite в. Он работает хорошо, но это не поможет вашему мозгу таять. Истинным отладчиком было бы хорошо.
Предполагаю, что вы используете isapi_rewrite v3.
Законодательство контролируется главным образом httpd.conf. Отредактируйте этот файл с помощью своего приложения «Менеджер», по умолчанию установите его в Пуск -> Программы -> Helicon -> ISAPI_Rewrite 3 -> ISAPI_Rewrite Manager
В качестве альтернативы вы можете редактировать его вручную в папке C: \ Program Files \ Helicon \ ISAPI_Rewrite 3 \ httpd.conf (или эквивалентный каталог установки Windows). Я считаю, что он скрыт, поэтому вам нужно показать скрытые файлы.
Вот мои комментарии, которые я вложил в этот файл, поэтому я помню настройки. Прокомментируйте строку как можно дальше.
# Logging
# RewriteLog specifies log file.
# RewriteLogLevel specifies verbosity. 0 = none, 9 = all.
#RewriteLogLevel 9
# LogLevel is for general logging for config file loading problems, not rewriting. Default is warn.
#LogLevel debug
RewriteLogLevel
является установка, которая превращает вход и выключается. Обычно я использую 0 или 9. Я искал другие настройки из любопытства, но не знаю специфики. Вообще-то я хочу все, если я преследую проблему.
RewriteLog бы указать альтернативный файл журнала, но я просто оставить его неопределенные, и он пишет Rewrite.log
в C: \ Program Files \ Helicon \ ISAPI_Rewrite 3 \ (или эквивалент окна каталога установки)
(у меня есть редко (никогда?) использовал LogLevel, я просто держу его там, прокомментировал, чтобы напомнить себе, что я его не использую.)
Удалите строку, удалив ведущий #
и сохраните его. (В своем редакторе нажмите «Применить» в левом верхнем углу или ctrl-s, затем снова нажмите «Применить» в главном диалоговом окне. Вы можете оставить главное диалоговое окно открытым, чтобы быстро прокомментировать его снова.)
Файл Rewrite.log будет начните быстро заполняться. Это действительно практично только в системе разработки, где ваши запросы являются единственными. Если вы находитесь на производстве, включите его, нажмите на страницу и быстро отключите его. В файлах журналов есть IP-адреса, которые могут помочь вам найти ваши правила.
Что вы увидите, это начальный запрос, проходящий через все правила, пока он не будет соответствовать. Затем вы увидите [INTERNAL REDIRECT]
, что означает, что он переписывает правила (это немного неправильное имя, которое меня обманывало какое-то время), это просто означает, что он переписывается из нашего представления, а также «явно перенаправляет перенаправление» для фактического переадресации в Интернете).
Вот файл журнала пример из моего ответа на этот вопрос:
How to redirect a page in ISAPI_Rewrite
Это перенаправляет/cnvrt к/конвертировать, а затем переписывает/конвертировать в /convert.aspx
Вы можете увидеть первый блок, соответствующий перенаправлению и выполняющий его. Затем второй блок - это соответствие/преобразование url и переписывание в convert.aspx. Если нет совпадения, это просто проходит через все правила. Вы можете видеть это в третьем блоке, где мой браузер пошел искать favicon.ico, которого он не нашел.
Эти журналы также являются открытием для каждого запроса - каждое изображение, таблица стилей и т. Д. Проходят через все правила. Я играл с правилами «shortcut», чтобы поймать/img,/images, * .css, * .js и просто выйти, ничего не меняя. Вы можете увидеть, как они пытаются соответствовать ниже.
Заключительное примечание: Когда это сделано, и ведение журнала выключен, убедитесь, что только открытым, пустым и сохранить Rewrite.log, НЕ УДАЛИТЬ Rewrite.log Есть много сообщений на форумах о Helicon проблемы с правами, воссоздающие файл. Очевидно, isapi_rewrite может установить его и отредактировать, но может иметь проблемы, воссоздающие его.
(Deleted IP addresses, date and time, domain and some session id tracking)
(1) Htaccess process request C:\Program Files\Helicon\ISAPI_Rewrite3\httpd.conf
(1) Htaccess process request d:\websitepath\.htaccess
(3) applying pattern '^(?:/img/|/images/)' to uri '/cnvrt'
(3) applying pattern '(?:\.css|\.js)$' to uri '/cnvrt'
(3) applying pattern '(.*)' to uri '/cnvrt'
(4) RewriteCond: input='www.yourdomain.com' pattern='^(?!www\.|x\.|loc)(.*)$' => not-matched
(3) applying pattern '^/cnvrt$' to uri '/cnvrt'
(1) escaping /convert
(2) explicitly forcing redirect with http://www.yourdomain.com/convert
(2) internal redirect with /cnvrt [INTERNAL REDIRECT]
(2) init rewrite engine with requested uri /convert
(1) Htaccess process request C:\Program Files\Helicon\ISAPI_Rewrite3\httpd.conf
(1) Htaccess process request d:\websitepath\.htaccess
(3) applying pattern '^(?:/img/|/images/)' to uri '/convert'
(3) applying pattern '(?:\.css|\.js)$' to uri '/convert'
(3) applying pattern '(.*)' to uri '/convert'
(4) RewriteCond: input='www.yourdomain.com' pattern='^(?!www\.|x\.|loc)(.*)$' => not-matched
(3) applying pattern '^/cnvrt$' to uri '/convert'
(3) applying pattern '^/convert$' to uri '/convert'
(1) Rewrite URL to >> /projects/rw/convert.aspx
(2) rewrite '/convert' -> '/projects/rw/convert.aspx'
(2) internal redirect with /projects/rw/convert.aspx [INTERNAL REDIRECT]
(2) init rewrite engine with requested uri /favicon.ico
(1) Htaccess process request C:\Program Files\Helicon\ISAPI_Rewrite3\httpd.conf
(1) Htaccess process request d:\websitepath\.htaccess
(3) applying pattern '^(?:/img/|/images/)' to uri '/favicon.ico'
(3) applying pattern '(?:\.css|\.js)$' to uri '/favicon.ico'
(3) applying pattern '(.*)' to uri '/favicon.ico'
(4) RewriteCond: input='www.yourdomain.com' pattern='^(?!www\.|x\.|loc)(.*)$' => not-matched
(3) applying pattern '^/cnvrt$' to uri '/favicon.ico'
(3) applying pattern '^/convert$' to uri '/favicon.ico'
Ничего себе подробный ответ, спасибо :) Я обнаружил это сам в промежутке, хотя и использовал его для большого эффекта - хотя, как вы говорите, это заставит ваш мозг временно расплавиться, когда вы впервые посмотрите на журнал. Отмечено это как ответ! – WickyNilliams
Спасибо за отличный ответ! Пожалуйста, свяжитесь со мной по адресу [email protected] Я буду рад поговорить с вами. – Yaroslav