久々にApacheのmod_rewriteをこねこねしたので、その備忘録。
Apacheのmod_rewriteはかなり柔軟な指定をすることができ、それ故に”黒魔術”と呼ばれることもあります。
そんなmod_rewriteですが、プログラムを介することなくGET/POSTなどのメソッドに応じてリダイレクトさせることが可能です。
書き方としては
RewriteCond %{REQUEST_METHOD} ^(メソッド名)$
こんな感じです。
例えば、POSTの時だけリダイレクトしたいのであれば
RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(POST)$ RewriteRule ^(.*)$ /post/only/path%{REQUEST_URI} [R=301,L]
のように書けます。
Rewriteは非常にたくさんのオプションを指定でき、柔軟に振り先を分けることができます。
Apacheのmod_rewriteモジュールの使い方を徹底的に解説 – OXY NOTES
ただし、誤った設定をしてしまうと、リダイレクトループに陥ってしまい、ページが表示できなくなってしまうこともよくあります。
すでに動いているサイトなどでは十分に注意して使用してくださいね。