MODx Revolution 2.0.0: 単一のゲートウェイプラグインを利用して複数ドメインを管理する

ヴァーチャルホストでサブドメイン(ドメイン)を運用する方法に引き続き、単一のゲートウェイプラグインを作成して複数ドメインを運用する方法です。

ヴァーチャルドメインの場合と同様に、Apacheのhttp.confを変更できるサーバー、ドメインを割り当てるディレクトリを変更できるサーバー(XREA / CoreServerなど)での方法になります。今回の方法では、あらかじめ、全てのドメインが同じ一つのディレクトリに割り当てられているものとします。ドメイン振り分けのためだけにディレクトリ・ファイルを作成する必要がないため、より管理が楽になります。

なお、前回と同様、あらかじめシステム設定から「フレンドリーエイリアスの使用」「フレンドリーURLの利用」「フレンドリーパスを使用」を有効にしておく必要があります。また、ここで使用するコンテキストとコンテキスト設定も、前回と同様の方法であらかじめ作成してあるものとします。

ここまでに紹介した方法以外にも、MODx Revolutionで複数サイトを運用する方法はたくさんあります。このことはMODx Revolutionがいかに柔軟であるかを物語っています。ちなみに、コンテキストは複数サイトを管理するためだけのものではありません。コンテキストはあらゆる用途に利用でき、その用途は利用者自身が決めることができます。

以下、MODx Revolutionのドキュメントの翻訳です。

MODx Revolution 2.0.0: 単一のゲートウェイプラグインを利用して複数ドメインを管理する

複数のドメインにまたがって、単一のデータベースとマネージャを共有することができます。最初のフロントエンドコンテキスト ('web' です) で全てのドメインを処理することもできますし、固有のゲートウェイファイルを作成して、ドメインごとに特定のコンテキストを直接初期化することもできます。単一のゲートウェイを使用する場合は、次のようなプラグインをOnHandlerRequestイベントに登録し、コンテキストを切り替えることになります。

<?PHP
switch ($modx->getOption('http_host')) {
   case 'domain2.tld:80':
   case 'domain2.tld':
      // もし、 http_host が指定されたドメインであればコンテキストを切り替える。
      $modx->switchContext('domain2.tld');
      break;
   default:
      // 標準では何もしない
      break;
)
?>

あるいは、単に index.php ファイル(と core.config.php 、リライトルールを適切に変更した .htaccess )を標準のwebコンテキストから他のディレクトリへコピーし、次の行を変更することになります。

$modx->initialize('web');

から

$modx->initialize('コンテキスト名');

単に、index.php をリネームし、同じディレクトリにコピーするだけでも同様のことができます。ただし、リライトルールは、リクエストを適切なコンテキストゲートウェイに振り分けるのに十分なものでなけばなりません。さらに、コンテキスト設定で request_controller オプションを適切に設定する必要があります。

これらのいずれかの方法で、コアの置き場所をカスタマイズすることもできます。これがコンテキスト駆動型マルチサイト機能の柔軟性です。

M子