URL の移動 (mod_rewrite)

サービスの URL が変わった場合には、古い URL へのリクエストを、新しい URL に書き換えます。ここでは mod_rewrite の実際の設定をメモしておきます。

例えば /search/?q=検索語 を http://new-server/search/?q=検索語 に書き換えたい場合、


RewriteEngine on
RewriteRule ^/search/(.*)$ http://new-server/search/$1 [R=301,NE,L]

のようになります。NE (no URI escaping of output) フラグは、'%', '$', ';' を順に '%25', '%24', '%3B' にエスケープすることを抑制します。NE フラグを指定しないと、例えば "ロボット" をエスケープ済みの ?q=%E3%83%AD%E3%83%9C%E3%83%83%E3%83%88 を渡した場合、'%' が '%25' にエスケープされ、?q=%25%E3%25%83 .... のようになります。

森田