.htaccessでRewriteCond書く時に実際に %{REQUEST_URI} に入ってきてる値を手軽に確認する方法

困ったこと

RewriteCond を書く時、環境変数に実際にどんな値が入ってきているのか分からないままルールを書き始めると、まったくもって想像通りの動きにならず、どんどん .htaccess の苦手意識が強くなりますよね。

もちろん、以下のようにして RewriteCond のログファイルを作らせることで細かい実行内容を確認できますが、レンタルサーバ等でこれが出来ない場合もあるでしょう。

RewriteLog /var/log/httpd/rewrite.log
RewriteLogLevel 9

どうしたら?

その場合は、こんな風に書いてみましょう。

RewriteRule ^.*$ /?%{REQUEST_URI} [L]

これで、適当なURLにブラウザからアクセスすると、 ?%{REQUEST_URI} が実際の値になってリダイレクトされ、ブラウザのURL欄に出てきてくれるという寸法です。

もちろん、環境変数の公開やURLの意図しない操作は脆弱性となりえるので、確認後はすぐ削除するようにしましょう!!