質問: example.comにサブドメイン(hoge)を設定し http://hoge.example.comにアクセスするとhttp://example.com/hoge/の内容が表示されます。 サブドメイン(hoge)の公開フォルダはexample.com/hoge/です。 http://hoge.example.comにアクセスするとabc.htmlにリダイレクトさせるため .htaccessのRewriteRuleで ``` RewriteCond %{HTTP_HOST} ^hoge\.example\.com RewriteRule ^hoge/$ http://hoge.example.com/abc.html [R=301,L] ``` と記述して正常にリダイレクトされています。 ここで、ふと疑問に思いやってみたことでわからないことがあったのですが、 サブドメイン以下のアクセスも全てhttp://hoge.example.com/abc.htmlにリダイレクトさせるには どのように記述すればよろしいのでしょうか? 例えば、 http://hoge.example.com/foo/ → http://hoge.example.com/abc.html http://hoge.example.com/foo/bar.html → http://hoge.example.com/abc.html fooやbar以外にもすべてリダイレクトさせます。 つまり、サブドメイン以下にアクセスしても全てhttp://hoge.example.com/abc.htmlにリダイレクトということです。 ``` RewriteCond %{HTTP_HOST} ^hoge\.example\.com RewriteRule ^hoge/(.*)$ http://hoge.example.com/abc.html [R=301,L] ``` と記述するとリダイレクトが繰り返し起きてしまいうまくいきません。 どなたかお分かりの方がいましたらばご教授宜しくお願い致します。
回答: 検証もしていないし、アイディアとして思いついただけなので、他の人が回答してくれるのを望みますが、こんな考えはどうでしょうか。 「終点の URL (http://hoge.example.com/abc.html)」にリダイレクトするのは、終点の URL 以外のとき、と。 ``` RewriteCond %{HTTP_HOST} ^hoge\.example\.com RewriteCond %{REQUEST_URI} !^http://hoge\.example\.com/abc\.html$ RewriteRule ^hoge/(.*)$ http://hoge.example.com/abc.html [R=301,L] ```