使ってみましたが一度 Contact Us (共有SSLのページ)にアクセスした後は他のメニューリンクが
WayFinderには、フルパスを出力するオプション(fullLink)があるのですが、何か役に立ちますか?
(fullLinkオプションは、Let’s enjoyのリソース解説にはありません)
やはりそうなっちゃいますよね。
Quote from: sama55 at Jan 27, 2009, 08:05 PM使ってみましたが一度 Contact Us (共有SSLのページ)にアクセスした後は他のメニューリンクが
WayFinderには、フルパスを出力するオプション(fullLink)があるのですが、何か役に立ちますか?
(fullLinkオプションは、Let’s enjoyのリソース解説にはありません)
https://ss1.coressl.jp/xxx.s78.coreserver.jp/modx/xxx.html
と出力され、とりあえずリンクの有効なアドレスが表示されます。ブラウザの勝手な解釈で
https://ss1.coressl.jp/modx/xxx.html のようないい加減な出力よりはましですが、
ええ、私も同じように考えました。ただ、この問題は、WayFinderに限った話ではない(Dittoなどを
https://ss1.coressl.jp/ の部分を http:// に置換するようなオプションがあれば最高なんですけどね。
結局自作スニペットに戻りそうですが少し改造して
ええ、私も同じように考えました。ただ、この問題は、WayFinderに限った話ではない(Dittoなどを
含むリソースへのパスを発生させるすべてのモジュールに関係する)と思ったので、下の大胆な
プランに行き着きました。
http://modxcms.com/forums/index.php/topic,32384.msg197499.html#msg197499
<?php
$docId = $modx->documentObject['id'];
if ($docId==6) {
$modx->config['site_url']='https://ss1.coressl.jp/xxx.s78.coreserver.jp/modx/';
} else {
$modx->config['site_url']='http://xxx.s78.coreserver.jp/modx/';
}
$modx->config['base_url']='http://xxx.s78.coreserver.jp/modx/';
return "";
?>普通の画像リンクだと FireFox でもエラーは出てたと思うんですが
でも、https://のページ内にhttp://の画像とかが含まれてしまうので、そういう状態で暗号化された
ページをブラウザがどのように判断するのかは、実験したことがないのでアカンのかも...
う~~ん、どうでしょう。芋づる式に対応、なんてことにならなければよいのですが・・・
Contact Us へのウェブリンクと同じように Home へのウェブリンクを作って http://xxx.s78.coreserver.jp/modx/ へ飛ばすのが一番の方法だと気がつきました。
対応箇所や論理をシンプルにしたい、という思いは一緒です。
あまり全体の構造を複雑にしたくないので、プレースフォルダとかプラグインの勉強はこれからです。
たぶん、芋づる式にはなると思います。base_url を使っているところがすべて関連してくるので。Joomlma のように最初から SSL に対応していても共有SSLが使えるCMSはたぶんありません。modx はフレームワークとしてのよさを考えればとりあえずコア側で対応する必要もないと思います。・・・が base_url コア内での乱用だけはやめてほしい。
う~~ん、どうでしょう。芋づる式に対応、なんてことにならなければよいのですが・・・
たしかに、エンドユーザのパソコンからサーバ間の暗号化でメール自体が暗号化されるわけではありません。それだけのことで専用SSLを数万円を出して購入する価値もないので共有SSLを利用する価値があるわけです。また要望があるからこそ、さくらも2/5からのサービス提供になったのだろうと思います。
上記のhttpsの中のhttpは、「SSLど素人のたわ言」として忘れてください (すいません)。
そもそもページの暗号化は、入力フォームや確認ページに表示された個人情報をはじめとする
重要な情報を暗号化することが目的ですから、外部リンク先の画像などが仮に暗号化されなくとも
大切な情報は守られてるわけだし、暗号化の処理が介入するのがトランスポート層であることまで
考えれば、そんな細かいことまでゴリゴリ考える必要もないわけで。。。(えらく恥ずかしい)
今回は、タイトルのように「eForm で画像認証を使いたい」が目的ではじまって結果的には画像認証に失敗する原因がSSLページの中に含まれる http:// でアクセスされる <img src="/modx/manager/includes/veriword.php">の記述にあったわけで、そこから SSL とか base_href の話に移ってしまったわけですが、プラグインを作るのが目的ではありません。当初の目的は自分としては解決できたのでそれでよしと思っています。
また、この問題は対応方式ありきではなくて、初心に帰って、やりたいことを素直にコードに落とした
方がよりシンプルな解に結びつくような気がしてます。もう少し具体的に言うと、「特定なページだけ
暗号化したい~~~」ってことは、ページごとに処理を分岐させるための条件設定を行えばよくて、
MODxでページごとに条件を設定できる機能=テンプレート(ドキュメント)変数だね、となって、
ならば、Joomla!方式だわな、、、という流れで至極単純なんです。
で、この基本原則を守りつつ、一番改造量が少なくて済む箇所に目をつけて、既存の処理を
阻害しないようにビシっと判定文を入れて対処してやれば、改造の影響が少ない状態で対応できる
のではないかと考えました。
<?php
$docId = $modx->documentObject['id'];
if ($docId==6) {
$modx->config['site_url']='https://ss1.coressl.jp/xxx.s78.coreserver.jp/modx/';
} else {
$modx->config['site_url']='http://xxx.s78.coreserver.jp/modx/';
}
$modx->config['base_url']='http://xxx.s78.coreserver.jp/modx/';
return "";
?>
<li[+wf.classes+]><a href="[~s[+wf.docid+]~]" title="[+wf.title+]">[+wf.linktext+]</a>[+wf.wrapper+]</li>
↑このあたりが肝

現状でも専用SSL では問題有りませんが共有SSL のアドレスをオプションで指定できればありがたいですね。
sslSwitcherを使うと[~s23~]といった書き方で、URL生成時にhttps用とhttp用と振り分けて生成してくれます。
(詳しくはsslSwitcher付属のreadmeをご覧ください)
上記機能を前提にテンプレートリンクの張り方を以下のように変更します。
<li[+wf.classes+]><a href="[~s[+wf.docid+]~]" title="[+wf.title+]">[+wf.linktext+]</a>[+wf.wrapper+]</li> ↑このあたりが肝
WayfinderではドキュメントIDだけを出力して[~s数字~]というsslSwitcher用の書き方にあわせると、その後sslSwitcherがURLに展開してくれます。
とりあえず専用SSLだとこの方法でいけそうな気がしますが、どうでしょうか。
じつは sslSwitcher の動作がよくわかっていないので放り出している状態です。
検証したいのですが専用SSLはさすがに個人で持っていないので(汗)
これだとsslSwitcherのインストールとテンプレートの変更だけでいけるかもしれません。
共有SSLは少しsslSwitcherの改造が必要ですが、なんとかなりそうな気がしています。
こちらは検証できたら報告します