質問: apacheにて 全てのアクセスを指定した階層下に**URLを保持したまま**リダイレクトしたいです。 下記のような感じです ``` www.example.com -> www.example.com/test www.example.com/login -> www.example.com/test/login ``` 記述としては ``` Rewriterule ^(/.*)$ /test$1 [R=301,L] ``` だと思うのですが、これだとリダイレクトループになりますので、 RedirectCondで条件指定するのですが、 URLを保持したままリダイレクトしたいので ``` RewriteCond %{REQUEST_URI} !^/test(/.*)$ ``` が使えないため悩んでおります。
回答: 「URLを保持したままリダイレクト」の意味は、HTTPレスポンスの 301,302リダイレクトではなく、mod_rewrite で言うところの内部サブリクエストとか、内部リダイレクトと呼ばれるものではないでしょうか。 もし、そうれあれば、R=301 は必要なく、以下のように設定するといいと思います。 ``` RewriteEngine On RewriteCond %{REQUEST_URI} !^/test/ RewriteRule ^(.*)$ /test/$1 [L] ```