Quote from: sama55 at Jan 27, 2009, 02:09 AM
すんません・・・かなりアホなこと言っちゃいました?
いえいぇ、毎度お手数掛けて恐縮しております。でも makeURL にはすべて base_url が頭についてくるようなので config.inc.php 側で固定したほうが早そうです。あまりコアをいぢると泥沼に入っていきそうなので・・
いまこれを書いてから ZeRo さんのコメントが入りました。いまから HTTP_VIA ちょっと見てみます。
http://modxcms.com/forums/index.php/topic,32384.msg197527.html#msg197527
ようやく全体像がわかってきました。config.inc.php はノーマルの状態で説明します。
また HTTP_VIA にかかわらす 画像への参照に base_url の不可は不要だと思います。
■ブラウザによる URI の解釈と modx の base_url の組み合わせによる共有SSL利用時の功罪
-------------------------------------------------------------------------------------
<head>
<base href="
https://ss1.coressl.jp/xxx.s78.coreserver.jp/modx/" />
</head>
<body>
<img src="
/modx/manager/includes/veriword.php">
</body>
-------------------------------------------------------------------------------------
上記の書き方で
赤字の部分が eForm を使った場合に
base_url で付加される部分ですがブラウザで表示した場合にCAPTCHA の画像プロパティーを見ると、
https://ss1.coressl.jp/modx/manager/includes/veriword.php のようなアドレスになり、画像は表示されません。このような動作はブラウザ側の解釈でこのようになっているようです。また modx で取得した環境変数 HTTP_HOST は常に xxx.s78.coreserver.jp となっています。
赤字部分を削除して相対アドレスでアクセスした場合には<base href= を基準にして画像へのアドレスが以下のように正常に評価され CAPTCHA 画像は正常に表示されます。
https://ss1.coressl.jp/xxx.s78.coreserver.jp/modx/manager/includes/veriword.php
要するに「チャンク、スニペットなどのソースコード内で画像への参照アドレスは base_url を使わないようにしてほしい」ということです。
環境変数が SERVER_PORT とか SERVER_HTTPS でなく https も部分を文字列としてとってくる方法があればまた、別の方法も考えられるのですがいまのところページごとに
自作スニペットと config.inc.php の書き換えで対応する以外ないようです。
それに SERVER_HTTPS を取得できない coreserver にまで modx に対応しろというのは無理なことがわかりました。さくらの共有SSLはどうなるんでしょうかね。