[さくらインターネット] さくらのマルチドメインでRewriteRuleを使う

この記事は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 に書けば良い、と覚えてればいいかも。

(この正解にたどり着くのにドハマリしてしまった…)

参考:http://faq.sakuratan.com/wiki/wiki.cgi?.htaccess

タイトルとURLをコピーしました