mod_rewriteでのリダイレクトでパラメータは引き継がない方法
やりたいこと
http://www.example.com/hoge/***/?id=1
にアクセスがあった場合に
http://www.sample.com/hogehoge/
にリダイレクトさせたいというもの。またパラメータ等は引き継ぎたくない
実装方法
RewriteCond %{HTTP_HOST} www(\.example\.com)$ RewriteCond %{REQUEST_URI} ^\/hoge\/(.*)$ RewriteRule ^(.*)$ http://www.sample.com/hogehoge? [L]
でいけました。ちなみにRewriteRuleの1番後ろの「?」があるとパラメータも引き継いでしまい上手くいきませんでした、、、なぜだろう
ついでに動的に引き継ぎたい部分がある場合も
RewriteCond %{HTTP_HOST} www(\.example.\com)$ RewriteCond %{REQUEST_URI} ^\/hoge\/(.*)$ RewriteRule \/hoge\/(.*)$ http://www.sample.com/%1 [L]
こんな感じで書いておけば
http://www.example.com/hoge/piyo
にアクセスがあった際に
http://www.sample.com/piyo
に転送するなんてことも可能。