2011-03-14 15 views
2

誰かがisapi書き換えルールのセットをデバッグすることを知っていたか、経験したことがあるのだろうか?isapiデバッグまたはテストハーネスを書き直す

私はかなり大きなルールセットを持っているので、手動でそれらを通過するのは容易ではありません。だからあなたのルールを入れてURLを渡し、どのルールが一致しているか、結果のURLが何であるかを調べるためのテストハーネスがあるかどうか疑問に思っていましたか?

また、私の問題がどこにあるかもしれないかについて私に指導してくれる先進的なログもありません。

私の頭脳が溶けようとしているので、どんな助力があれば幸いです!

乾杯

答えて

7

私は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は、代替ログ・ファイルを指定するだろうが、私は何も指定しないでおき、それがCにRewrite.logに書いている:\プログラムファイル\ヘリ\ ISAPI_Rewrite 3 \(または同等のWindowsインストールディレクトリ)

(私が持っていますLogLevelを使用することはほとんどありません;使用しないことを思い出させるためコメントアウトしておきます)

先頭の#を削除してコメントを外し、保存します。 (エディタで、左上のApplyをクリックするかctrl-s;メインダイアログで再度Applyをクリックします。メインダイアログを開いたままにしておくと、すぐにコメントアウトすることができます)

Rewrite.logファイルは、早くいっぱいになる。これは実際にあなたの要求が唯一の開発システムで実用的です。プロダクションに参加している場合は、電源を入れ、ページを叩いてすぐに電源を切ってください。ログファイルには、ルールの検索に役立つIPアドレスがあります。

最初のリクエストは、すべてのルールを通過して一致するまで表示されます。それから、[INTERNAL REDIRECT]が表示されます。これは、ルールを書き直したことを意味します(これは、しばらく私をだましてしまった誤解です。実際のWebリダイレクトの場合は、明示的に強制的にリダイレクトしています。ここで

は私の答えからこの質問へのログファイルの例です:
How to redirect a page in ISAPI_Rewrite

これは/ cnvrtに変換/リダイレクトし、その後、/あなたが最初に見ることができます

を/convert.aspxに変換書き換えます。リダイレクトとのマッチングをブロックして実行します。次に、2番目のブロックは/ convert URLに一致し、convert.aspxに書き直されます。一致がない場合は、すべてのルールに該当します。私のブラウザが見つけられなかったfavicon.icoを探しに行った3番目のブロックでこれを見ることができます。

これらのログは、すべての要求がどのくらい通過するかを知るためのものでもあります。すべての画像、スタイルシートなどはすべてのルールに従います。私は/ img、/ images、* .css、* .jsをキャッチするための "ショートカット"ルールで遊び、何も変えずにただ終了しました。あなたはこれらを以下で一致させようとしているのを見ることができる。

最後の注記:行われ、ロギングがオフになっているときに、ちょうど開いて、空に必ずと Rewrite.logを保存し、約ヘリコンフォーラムで多くの記事がありますRewrite.logを削除しないでくださいファイルを再作成する際に権限が苦労します。明らかに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' 
+2

驚くほど詳細な解答、ありがとう:)私は暫定的にこれを発見し、それを大きな効果を発揮しました。しかし、最初にログを見ると脳が一時的に溶けてしまいます。これを答えにしました! – WickyNilliams

+0

すばらしい答えをありがとう! [email protected]までご連絡ください。私はあなたと話してうれしいです。 – Yaroslav

1

あなたは、あなたが詐欺猿製品に付属してより便利なデバッガを使用し、サーバーまたは開発マシンのいずれかにヘリコン猿の代わりに、ISAPI_Rewriteをインストールすることができます。ドキュメントmod_developerおよび記事Trace HTTP traffic and IIS configuration Helicon Apeは、RewriteRule構文に関してはISAPI_Rewrite 3と互換性があり、ルールを作成するために使用できます。

関連する問題