きょうはもう寝るからメモ ToDo
Jan 31
ずいぶん前から試そうと思ってたマルチドメインのやりかた
いやぁ、試してはいたんだけど、どうも上手く動かなかったのが、なぜか突然上手く動くようになったんで書いておきます
.htaccess の RewriteCond と RewriteRule を追加するだけ
前にやった時は動いてくれなかったのに、今回は動いてくれました
やりかたは続きに
通常の .htaccess の記述
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?virtualpath=$1 [L,QSA]
の、『RewriteEngine on』の次の行に
RewriteCond %{HTTP_HOST} 振り分けるドメイン名
RewriteRule (.*) index.php?virtualpath=上のドメイン用に作ったブログのショートネーム/$1 [L,QSA]
を追加するだけです
たとえば、メインのドメインを『example.com』、別のドメインを『example2.jp』として、『example1.jp』用のブログのショートネームを『otherdomain』とした場合、
RewriteEngine on
RewriteCond %{HTTP_HOST} example2.jp
RewriteRule (.*) index.php?virtualpath=otherdomain/$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?virtualpath=$1 [L,QSA]
とすると、『http://example.com』にアクセスした時はメインブログに、『http://example2.jp』にアクセスした時は、『otherdomain』ブログに振り別けられます
同じように、
RewriteCond %{HTTP_HOST} 振り分けるドメイン名
RewriteRule (.*) index.php?virtualpath=上のドメイン用に作ったブログのショートネーム/$1 [L,QSA]
の行を追加していく事で、複数のドメインに対応できます
ちなみに次のようにすると、複数ドメイン+サブドメインでアクセスできるはずです
RewriteEngine on
RewriteCond %{HTTP_HOST} example2.jp
RewriteRule (.*) index.php?virtualpath=example2/$1 [L,QSA]
RewriteCond %{HTTP_HOST} example3.net
RewriteRule (.*) index.php?virtualpath=example3/$1 [L,QSA]
RewriteCond %{HTTP_HOST} "!^main.example.com$"
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+).example.com(.*) /index.php?virtualpath=$1/$2 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?virtualpath=$1 [L,QSA]

これはあくまでもウチのサーバ(FreeBSD/Apache224)で上手く行った事例なので、もし動かなかったらごめんなさい

4 Responses to “ NP_CustomURL と ModRewrite を使ったマルチドメイン ”

  1. yu Says:
    ちょうどいいタイミング・・
    今晩うちのサイト(マルチドメイン)にCustomURLを導入するつもりでした。
    rewrite設定を参考にさせてもらいます。
  2. しづき Says:
    なんかCustomURLなサイトが増えてきてて、うれしいやらはずかしいやらで ^^;
    ParseURLの部分をモジュール化する方法をずっと考えてるんですがいい方法が思い浮かばず、今以上には対応させるべきプラグインが増えた時の事を考えると…
    3.3でスキンタイプが増えたらまた何か考えないとダメですし…
  3. yuuki_kurashima Says:
    同サーバー内のサブドメインを振り分けるにはどうすれば・・・
    ブログを新規作成した時点でフリーズしてしまいましたw
  4. ロッド Says:
    NP_CustomURL
    使わせてもらっています。
    ありがとうございます。

    サブドメの書き方参考にさせていただきました。
    私の環境では上手く動かなく、色々試行錯誤の末

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(.*).example.net$
    RewriteCond %{HTTP_HOST} ([^\.]+).*
    RewriteRule (.*) index.php?virtualpath=%1/$1 [L,QSA]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?virtualpath=$1 [L,QSA]

    これにて動くようになりました。

    http://example.net → メインブログ
    http://*.example.net → その他ブログ

    バーチャルホストにワイルドカードとDNSのワイルドカードを併用しています。

    環境は WebKeepers って言うサービスの VPS です。

    では!

Leave a Reply

OpenID を使ってログインすることができます。

Identity URL:



Web Services by Yahoo! JAPAN

このエントリにトラックバックはありません

この記事のトラックバックURL
http://shizuki.kinezumi.net/item_433.trackback(右クリックで'ショートカットの保存')
トラックバックするにはこの記事へのリンクhttp://shizuki.kinezumi.net/item_433.htmlが必要です