この記事は3年以上前に書かれた記事です。情報が古い可能性があります。
さくらインターネットで、複数のドメインをサブディレクトリで扱う際 RewriteRule を書くのだが、その書き方でハマったので備忘としてメモ。さくら以外の他サービスでも Apache 系サーバなら同じ理屈になるんじゃないかと予想するが、未確認。
例えば、ドメインに対するディレクトリを
mlexp.com → www/
mlexp.net → www/sub/
という風に、mlexp.com をルートディレクトリ、mlexp.net をサブディレクトリに振る場合、まず、さくらのコントロールパネルの「パス」が以下のようになっていることを確認。
mlexp.com → /
mlexp.net → /sub
重要なのは、サブディレクトリの場合、パスの最後に”/”を付けないこと。
また、mlexp.com/dir1 配下にアクセスされたときに、mlexp.net/dir2 配下にリライトしたい場合は
RewriteEngine on
RewriteBase /sub
RewriteRule ^dir1/(.*)$ dir2/$1 [L]
と書く。
RewiriteRule に書くパスは dir1 も dir2 も 前に “/” はつけない。また、RewriteBase に書くパスは 後ろに “/” は付けない。基本的にコントロールパネルのパスに書いてるものを RewriteBase に書けば良い、と覚えてればいいかも。
(この正解にたどり着くのにドハマリしてしまった…)