.htaccessからエコーアウトする方法は?


13

htaccessには多くのコードを記述しますが、ページを更新する以外にデバッグする最良の方法は何ですか?

ファイルに書き出す方法はありますか?または、エコー/印刷機能がありますか?

単に$ 1 $ 2 $ 3が何であるかを知るにはどうすればよいですか?

回答:


8

mod_rewriteをデバッグするカップルの方法というタイトルブログ投稿に記載されている方法を試すことができます 。


基本的に、mod_rewriteが使用している情報の一部をヘッダーにダンプし、FirefoxのFirebugまたはLiveHTTPヘッダー拡張機能を使用してヘッダーを監視し、デバッグ情報を読み取ります。

.htaccessで条件とルールを使用します。

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

テストを終了した後、キャッシュされた301の結果がブラウザで発生する問題を回避するために302リダイレクトを行うことをお勧めします。
IPSUS

9

これらを試してください:

RewriteLog "/myfolder/mylogfile.log" 
RewriteLogLevel 3

これらはいくつかの追加機能を備えた単なる正規表現であるため、Regex Coachを使用して、URLに対する初期テスト、またはその他のRegexデバッグツールを使用できます。

乾杯!:)


非常に便利なツールですが、大規模なログファイルを取得できるため、デバッグ後に削除することを忘れないでください!
コープス

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ファイルから直接返します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.