こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

.htaccessのリダイレクトについて

.htaccessで以下のようにURLをリダイレクトさせたいのですが、調べてもなかなかこのようなサンプルがなく、悩んでいます。

以下のようなURLにアクセスした場合
example.com/public
example.com/public/
example.com/public/pageA
example.com/public/pageB
example.com/public/pageB/pageC

以下のように、publicを削除したURLにリダイレクトしたいです。
example.com
example.com/
example.com/pageA
example.com/pageB
example.com/pageB/pageC

上記の設定は.htaccessのRewriteRuleの設定で可能でしょうか?
どなたか詳しい方がいたら教えていただきたいです。

よろしくお願いします。

投稿日時 - 2017-01-03 09:28:27

QNo.9276281

困ってます

質問者が選んだベストアンサー

こんにちは。

RedirectMatch permanent /public/(.*) http://example.com/$1

これでいけるのではないでしょうか。
ちなみに、(.*)とは 0文字または1文字以上の文字列を意味し、それを $1 に置換しています。

よって、http://example.com/public/ の場合は /public/ の後ろに0文字があるので条件にマッチするので http://example.com/ にリダイレクトされます。
http://example.com/public/pageA の場合は /public/ の後ろに1文字の文字列があるので、これも条件にマッチするので http://example.com/pageA にリダイレクトされます。

つまり /public/ 以下のディレクトリへのアクセスは、すべて http://example.com/ 以下にリダイレクトされます。

投稿日時 - 2017-01-03 14:43:00

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)