読者です 読者をやめる 読者になる 読者になる

mod_rewrite のメモ

Apache の Rewrite 機能で試してた設定をメモ書きしておく。

ある CGI から別の CGI を呼び出す

/test/one.cgi?x=1&y=2... のようなリクエストを /another.cgi?x=1&y=2... と受けるには

RewriteRule ^/test/one.cgi(.*)$ /another.cgi?$1

ではできない。URL引数はマッチ対象に含まれないためだ。%{QUERY_STRING} を渡せば良い。

RewriteEngine On
RewriteRule ^/test/one.cgi$ /another.cgi?%{QUERY_STRING}

とする。

CGI の引数を組み変えるには

arg=xxxx,yyyy を user=xxxx&pass=yyyy としたい場合は

RewriteEngine On
RewriteCond %{QUERY_STRING} ^arg=(.*),(.*)$
RewriteRule ^/test/one.cgi$ /another.cgi?user=%1&pass=%2

とする。この場合は、arg=... という引数があるのが条件になっているので、付いていないとリライトは走らない。