マルチドメインについて  【解決済み】

質問全般・改善要望
返信する
Yoshikazu
メンバー
メンバー
記事: 20
登録日時: 2012年5月31日(木) 15:33

マルチドメインについて

投稿記事 by Yoshikazu »

-----
ご利用のサーバ:CentOS 5
MODXのバージョン:2.2.4
PHPのバージョン:5.3.17
MySQLのバージョン:5.5.27
ブラウザ:firefox,IE9,chrome
-----
古いサイトが残っていたので、バーチャルホストで別ドメインを確保(apacheによる昔ながらのバーチャルホスト設定です)。
古いサイト(var/www/html/~~)www.hoge.com
バーチャルホスト(var/www/virtual/~~) <-- MODxが入っているフォルダです。www.hoge.net
バーチャルホスト(別ドメイン)にMODxrevoを入れました。そこで、以下の様な現象が出たのですが,これは正解なのでしょうか?。
バーチャルホスト(別ドメイン)でMODxのマルチドメイン処理をした場合。
1.コンテキストを作成。(hoge.net)。
2.コンテキスト設定
site_url:http://www.hoge.net/
base_url:/
http_host:www.hoge.net
site_start:(9)
site_name: *****
3.index.php変更
switch ~~case文での分岐です。
switch(strtolower(MODX_HTTP_HOST)) {
case 'hoge.net':
case'www.hoge.net':
$modx->initialize('hoge.net');
break;
default:
$modx->initialize('web');
break;
}
ここまでやって、webのドキュメントを表示 <---- 正常
hoge.netのドキュメントを表示 <---- 古いサイトのトップページ表示と成ります。www.hoge.com
この時、hoge.netのドキュメントにマウスを乗せると(www.hoge.net/manager/?a=30&id=9)です。また、コンテキストhoge.net表示時、コンテキストは(www.hoge.net/manager/?a=58key=hoge.net)を示し、当然、webの時は(www.hoge.net/manager/?a=58key=web)、webのドキュメントは(http://www.hoge.net/manager/?a=30&id=1)を示しています。
この現象は正しいのでしょうか?。
 ディレクトリを作成し、そこにindex.php,config.core.php, .htaccessを入れたものでは有りません。
 また、プラグインを作成し、OnHandlerRequestイベントも試しましたが、こちらの場合は「サーバーが見つからない」のエラーになります。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: マルチドメインについて

投稿記事 by yama »

a=58key=hoge.netではなくa=5&key=hoge.netではないのでしょうか?
Yoshikazu
メンバー
メンバー
記事: 20
登録日時: 2012年5月31日(木) 15:33

Re: マルチドメインについて

投稿記事 by Yoshikazu »

>>この時、hoge.netのドキュメントにマウスを乗せると(www.hoge.net/manager/?a=30&id=9)です。また、コンテキストhoge.net表示時、コンテキストは(www.hoge.net/manager/?a=58key=hoge.net)を示し、当然、webの時は(www.hoge.net/manager/?a=58key=web)、webのドキュメントは(http://www.hoge.net/manager/?a=30&id=1)を示しています。

下線部で&が抜けていました。訂正させて頂きます。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: マルチドメインについて

投稿記事 by yama »

> hoge.netのドキュメントにマウスを乗せると(www.hoge.net/manager/?a=30&id=9)です

hoge.netのトップページのリソース編集画面を開くと、URLがこのようになっているということでしょうか。だとしたら、これは合っていると思います。

> コンテキストhoge.net表示時、コンテキストは(www.hoge.net/manager/?a=58key=hoge.net)を示し

で、

> &が抜けていました

ということは、www.hoge.net/manager/?a=58&key=hoge.net ということでしょうか。この場合はリソースグループの編集画面なのでkey=hoge.netのパラメータは意味を持たないと思います。これが不具合ということでしょうか。
a=58key=hoge.net じゃなくてa=5&key=hoge.net ということなら合っているのですが。
コピペじゃないみたいなので、字面が似ている&と8を間違えただけで、実際にはどっちにしてもやっぱりちゃんと動作してないということでしょうか
Yoshikazu
メンバー
メンバー
記事: 20
登録日時: 2012年5月31日(木) 15:33

Re: マルチドメインについて

投稿記事 by Yoshikazu »

> a=58key=hoge.net じゃなくてa=5&key=hoge.net ということなら合っているのですが。

度々済みません。ご指摘の通り58key=hoge.netではなく、5&key=hoge.netです。

コンテキストを1つ追加(一つは既存のweb、追加はhoge.net)した状態で、
クライアントPC側のhostsの内容を次のように設定しました。
***.***.***.***(固定IP) hoge.info 元々のサイト
***.***.***.***( 〃 )  hoge.com <---- バーチャルホスト(contexts:web)
***.***.***.***( 〃 ) hoge.net <---- バーチャルホスト上(contexts:追加分)
上記3件の固定IPは同じものです。
以上の状態で、MODx上でhoge.comは普通にwebのドキュメントを表示しますが、hoge.netのドキュメントプレビューを行うとhoge.infoのトップページを表示するというものです。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: マルチドメインについて

投稿記事 by yama »

switch(strtolower(MODX_HTTP_HOST))を switch(strtolower($modx->getOption('http_host'))) に書き換えるとどうでしょう?
MODX_HTTP_HOSTだとインストール時に決め打ちになってたと思いますので
Yoshikazu
メンバー
メンバー
記事: 20
登録日時: 2012年5月31日(木) 15:33

Re: マルチドメインについて

投稿記事 by Yoshikazu »

yama さんが書きました:switch(strtolower(MODX_HTTP_HOST))を switch(strtolower($modx->getOption('http_host'))) に書き換えるとどうでしょう?
MODX_HTTP_HOSTだとインストール時に決め打ちになってたと思いますので
結果は同じでした。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: マルチドメインについて

投稿記事 by yama »

MODX_HTTP_HOSTの値をコアが正しく取得できてないのかもしれません。
switch(strtolower(MODX_HTTP_HOST))の行の直前に echo MODX_HTTP_HOST;exit; などと記述してみて確認できると思います。
Yoshikazu
メンバー
メンバー
記事: 20
登録日時: 2012年5月31日(木) 15:33

Re: マルチドメインについて

投稿記事 by Yoshikazu »

yama さんが書きました:MODX_HTTP_HOSTの値をコアが正しく取得できてないのかもしれません。
switch(strtolower(MODX_HTTP_HOST))の行の直前に echo MODX_HTTP_HOST;exit; などと記述してみて確認できると思います。
index.php変更後、webコンテキストでは[www.hoge.com]を表示しますが、追加したコンテキストのドキュメントプレビューでは、[www.hoge.info]<--元から有るサイトの表示に成ります.この状態から見るとMODX_HTTP_HOSTの値がコアに渡されずになっている様にも見えますが、、、。
別の固定IPの異なるサーバーでも確認してみたのですが、詳細設定を同じ状態でプレビューすると,上記と同じ結果に成ります。
私の設定がおかしいのでしょうか?。
お忙しい所申し訳ありませんが,ご教示宜しくお願い致します。
Yoshikazu
メンバー
メンバー
記事: 20
登録日時: 2012年5月31日(木) 15:33

Re: マルチドメインについて

投稿記事 by Yoshikazu »

Yoshikazu さんが書きました:
yama さんが書きました:MODX_HTTP_HOSTの値をコアが正しく取得できてないのかもしれません。
switch(strtolower(MODX_HTTP_HOST))の行の直前に echo MODX_HTTP_HOST;exit; などと記述してみて確認できると思います。
index.php変更後、webコンテキストでは[www.hoge.com]を表示しますが、追加したコンテキストのドキュメントプレビューでは、[www.hoge.info]<--元から有るサイトの表示に成ります.この状態から見るとMODX_HTTP_HOSTの値がコアに渡されずになっている様にも見えますが、、、。
別の固定IPの異なるサーバーでも確認してみたのですが、詳細設定を同じ状態でプレビューすると,上記と同じ結果に成ります。
私の設定がおかしいのでしょうか?。
お忙しい所申し訳ありませんが,ご教示宜しくお願い致します。
上記文中分かり難い箇所が有りましたので、、。
追加したコンテキストのドキュメントプレビューでは、[echo,,,;exit;]でHTTP_HOSTの値取得が上手く行かない様で、[www.hoge.info]のトップページを表示します。
Yoshikazu
メンバー
メンバー
記事: 20
登録日時: 2012年5月31日(木) 15:33

Re: マルチドメインについて

投稿記事 by Yoshikazu »

http://www.belafontecode.com/modx-revol ... e-domains/

このサイトに書いて有るindex.phpが参考にしたものと違っていたので変更してみました。
switch($modx->getOption('http_host')) {
// adding context
case'www.hoge.net:80':
case 'www.hoge.net':
$modx->switchContext('hoge.net');
break;
default:
// http://www.hoge.com
$modx->initialize(web');
break;
}

結果は同じでしたが、、。うーんと考えてしまいます。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: マルチドメインについて

投稿記事 by yama »

> [echo,,,;exit;]でHTTP_HOSTの値取得が上手く行かない

[echo,,,;exit;]ではなく echo MODX_HTTP_HOST;exit; ですが、そこは大丈夫でしょうか?(あえて省略されたのでしょうか?)

hoge.net コンテキストのサイトを表示できないということでしょうか?
Yoshikazu
メンバー
メンバー
記事: 20
登録日時: 2012年5月31日(木) 15:33

Re: マルチドメインについて  【解決済み】

投稿記事 by Yoshikazu »

yama さんが書きました:> [echo,,,;exit;]でHTTP_HOSTの値取得が上手く行かない

[echo,,,;exit;]ではなく echo MODX_HTTP_HOST;exit; ですが、そこは大丈夫でしょうか?(あえて省略されたのでしょうか?)

hoge.net コンテキストのサイトを表示できないということでしょうか?
済みません。
echo MODX_HTTP_HOST;exit;を入れると(web)コンテキストの表示では[www.hoge.com] の文字列表示になり、サブドメインの表示は[www.hoge.info]のトップページを表示します。

ところで
一昨日、revolutionを2.2.5にアップデートしました。管理画面のアイコン、ロゴ等を異なるものにしていたのでアップデート前の状態にしました。この作業以外、特に変更はしていないのですが、apacheで作成したバーチャルドメイン上に追加したサブドメインが正しく表示される様になりました。原因不明のままですが、正常に戻ったようなのでご協力頂いた方々にお礼申し上げます。
本当はもっと長い文章だったのですが、サーバーエラーを返すので試しに短いものを送ります。
返信する