ApacheのRewriteでメソッドの種類を条件にした時の書き方

takahashi 著者:takahashi

ApacheのRewriteでメソッドの種類を条件にした時の書き方

久々に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

ただし、誤った設定をしてしまうと、リダイレクトループに陥ってしまい、ページが表示できなくなってしまうこともよくあります。
すでに動いているサイトなどでは十分に注意して使用してくださいね。

  • この記事いいね! (0)

著者について

takahashi

takahashi administrator

Webエンジニア。 趣味で自宅サーバーを稼働中。 ファンタジーが好き。