Debugging isapi重写调试或测试线束

Debugging isapi重写调试或测试线束,debugging,testing,isapi-rewrite,Debugging,Testing,Isapi Rewrite,想知道是否有人知道或有过调试一组isapi重写规则的经验 我有一套相当大的规则,因此手动执行它们并不容易。因此,我想知道是否有任何测试工具可用于放入规则和传递URL,并查看哪些规则是匹配的,以及生成的URL是什么 或者如果做不到这一点,某种高级日志可能会引导我找到问题所在 我的大脑即将融化,任何帮助都将不胜感激 干杯我已经用isapi_rewrite的调试日志完成了这项工作。它工作得很好,但对你的大脑融化没有帮助。一个真正的调试器就好了 我假设您使用的是isapi_rewrite v3 日志记录

想知道是否有人知道或有过调试一组isapi重写规则的经验

我有一套相当大的规则,因此手动执行它们并不容易。因此,我想知道是否有任何测试工具可用于放入规则和传递URL,并查看哪些规则是匹配的,以及生成的URL是什么

或者如果做不到这一点,某种高级日志可能会引导我找到问题所在

我的大脑即将融化,任何帮助都将不胜感激


干杯

我已经用isapi_rewrite的调试日志完成了这项工作。它工作得很好,但对你的大脑融化没有帮助。一个真正的调试器就好了

我假设您使用的是isapi_rewrite v3

日志记录在主httpd.conf文件中进行控制。使用他们的“管理器”应用程序编辑此文件,默认安装开始->程序->Helicon->ISAPI_重写3->ISAPI_重写管理器

或者,您可以在C:\Program Files\Helicon\ISAPI\u 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将指定一个备用日志文件,但我只是不指定它,它将写入C:\Program Files\Helicon\ISAPI\u Rewrite 3\(或等效的windows安装目录)中的
Rewrite.log

(我很少(从未)使用LogLevel;我只是把它放在那里,注释掉,提醒自己我不使用它。)

通过删除前导的
#
并保存它来取消对该行的注释。(在编辑器中,单击左上角的应用,或ctrl-s;然后在主对话框中再次应用。您可以让主对话框保持打开状态,以便再次快速注释。)

Rewrite.log文件将很快开始填充。这实际上只适用于开发系统,其中只有您的请求。如果你正在制作,打开它,点击页面,然后快速关闭。日志文件具有IP地址,可以帮助定位规则

您将看到的是经过所有规则的初始请求,直到匹配为止。然后你会看到
[INTERNAL REDIRECT]
,这意味着它已经完成了规则的重写(这有点用词不当,愚弄了我一段时间——它只是意味着它在从我们的角度重写,而不是针对实际的web重定向“显式强制重定向”)

下面是我对这个问题的回答中的一个日志文件示例:

这会将/cnvrt重定向到/convert,然后将/convert重写为/convert.aspx

您可以看到第一个块匹配重定向并执行重定向。然后第二个块是/convert url匹配并被重写为convert.aspx。如果没有对手,它就会违反所有规则。你可以在第三个街区看到这一点,我的浏览器在那里查找favicon.ico,但没有找到

这些日志也让人大开眼界,可以了解每个请求的处理量——每个图像、样式表等都要遵守所有规则。我使用“快捷方式”规则捕获/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'

如果您可以在服务器或开发机器上安装Helicon Ape而不是ISAPI_Rewrite,那么您可以使用Ape产品附带的更方便的调试器。文件和文章
Helicon Ape在重写规则语法方面与ISAPI_Rewrite 3兼容,因此您可以使用它来开发规则。

哇,非常详细的答案,谢谢:)不过我自己在这期间发现了这一点,并使用它取得了很大的效果-尽管就像您所说的,当您第一次查看日志时,它会导致您的大脑暂时融化。将此标记为答案!谢谢你的回答!请联系我slov@helicontech.com我很高兴与你交谈。