htaccessのリダイレクトで、特定ディレクトリのみリダイレクトさせないことは可能でしょうか。

/、/hoge、/fuga、/piyo というディレクトリ構造があり、/と/hogeと/fugaにアクセスしたときは http://www.example.com/ にリダイレクトし、 /piyo にアクセスした際はリダイレクトせずにそのまま参照させたいのですが、何か方法はありますでしょうか。
レンタルサーバーのため、httpd.confの操作はできません。
また、JavaScriptやmetaによるリダイレクトなどの代替手段は使用できません。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2012/06/01 18:07:21
  • 終了:2012/06/01 19:42:42

回答(2件)

id:papa-tomo No.1

パパトモ回答回数361ベストアンサー獲得回数1072012/06/01 18:28:58スマートフォンから投稿

ポイント50pt

正規表現を使えばできますよ。
次のページが参考になると思います。

http://tech.bayashi.jp/archives/entry/techweb/2007/001981.html

id:papa-tomo

補足するとhttpaccessの定義は下位ディレクトリに継承されるはず(httpaccessファイルが無いとき)なので、ルートディレクトリに記述すればよいはずです

2012/06/01 18:41:29
id:y-kawaz No.2

y-kawaz回答回数1419ベストアンサー獲得回数2252012/06/01 19:24:32

ポイント50pt

トップディレクトリの .htacces に以下のようなRewriteRuleを書いておけば良いと思います。

RewriteEngine on
RewriteRule ^/?piyo - [S=1]
RewriteRule ^/?(.*) http://www.example.com/ [R,L]

RewriteRuleは上から順に処理されます。
2個目のRewriteRulede全てのパスへのアクセスをリダイレクトしていますが、
先にまず /piyo にマッチしたら[S=1]すなわち[skip=1]つまり次のRewriteRuleはスキップするので/piyoはリダイレクトされません。

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません