ページ 11

site_urlに於けるHTTPS判定について

Posted: 2014年3月20日(木) 21:32
by shobu
いつもお世話になっております。

前段のリバースプロキシ側でHTTPS処理をする場合、後段のhttpdなどは素のhttp接続でよいのでそうする場合が多いのですが、MODXの[(site_url)]の判定処理をいつも書換えています。
最近のバージョンですと少し位置が変わりましたが、 initialize.inc.php の150行目近辺に is_ssl()という関数があります。

ここで $_SERVER['HTTPS'] を使って判定しているのですが、nginx他でリバースプロキシを行い、接続時にHTTPS Onを送ると HTTP_HTTPS とHTTP_が付くことになります。
よって、 $_SERVER['HTTP_HTTPS'] も判定に加えてもらえると色々と使いやすいです。

if((isset($_SERVER['HTTP_HTTPS']) && strtolower($_SERVER['HTTP_HTTPS']) == 'on') || (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') || $_SERVER['SERVER_PORT'] == $https_port)

nginxなどと組み合わさるケースが多くなったためか、他のCMSでも似たような要望と改善がされているみたいです。。

Re: site_urlに於けるHTTPS判定について

Posted: 2014年3月21日(金) 01:16
by yama
initialize.inc.zip
(2.35 KiB) ダウンロード数: 781 回
あまりきれいな解決方法ではないかもしれませんが、$_SERVER['https']を上書きするアプローチを行なってみました。

Re: site_urlに於けるHTTPS判定について

Posted: 2014年3月22日(土) 17:51
by yama

Re: site_urlに於けるHTTPS判定について

Posted: 2014年3月25日(火) 09:31
by shobu
ありがとうございました。

毎度忘れて悩むので、いつか新しいバージョン使うときが来たときには助かります。