Apache/rewrite


Redirect(Rewrite)時に常に特定URLに行かせる方法

ApacheでRedirect時には通常ディレクトリ構造やファイル名が維持される。

例えばhttpd.confにこんな風に書くと
Redirect / http://hogehoge.co.jp/
こんな風にリダイレクトされ、/aaa/bbb.htmlの部分が維持される。
http://hoge.co.jp/aaa/bbb.html
↓
http://hogehoge.co.jp/aaa/bbb.html
通常はそれで問題無いのだろうけど、どんなURLで来てもトップページ(や特定のページ)に行かせたい場合はRedirectではできなさそう。
そこでRedirectMatchを使うとどんなURLで来てもトップページに行かせることが出来る。
こう書けば
RedirectMatch / http://hogehoge.co.jp/
こんな風にリダイレクトされる
http://hoge.co.jp/aaa/bbb.html
↓
http://hogehoge.co.jp/
RedirectMatchでディレクトリ構造を維持したい場合はこう
RedirectMatch /(.*) http://hogehoge.co.jp/$1
問題はRewriteでRedirectした時で、結構探した末にこちらのページにやり方がありました。
末尾に「?」を付ければ良いとのこと。
RewriteEngine On
RewriteRule ^/.*$ http://hogehoge.co.jp/?

なかなかこの情報に到達するのに苦労しました。

  • 最終更新:2016-01-21 15:06:56

このWIKIを編集するにはパスワード入力が必要です

認証パスワード