さくらインターネットさんのレンタルサーバーで RapidSSL を利用してサイトを SSL 化し、WordPress を利用ています
この構成で、とある通販サイトを WordPress のプラグイン利用して立ち上げようとしたのですが、ブラウザーがセキュリティー警告を出してしまいます
HTTP_X_SAKURA_FORWARDED_FOR を利用し回避するのが一般的なようですが、それでは間に合わなかったので追加の回避方法をとりました
忘れないように書き残しておきます
IE は 「セキュリティーで保護された….」 [すべてのコンテンツを表示]という表示がされ、
Chrome の場合は「このページは承認されていないソースからのスクリプトを読み込もうとしています」と言う表示が楯のアイコンとともに表示されてしまいます
FF は、アドレスバーの鍵のアイコンの上に ! が表示され、ページが表示出来ません
いろいろなサイトさんを参考に
if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
$_SERVER['HTTPS'] = 'on';
$_ENV['HTTPS'] = 'on';
$_SERVER['HTTP_HOST'] = 'example.jp';
$_SERVER['SERVER_NAME'] = 'example.jp';
$_ENV['HTTP_HOST'] = 'example.jp';
$_ENV['SERVER_NAME'] = 'example.jp';
}
こんなのを wp-config.php に突っ込みました
この他、テーマの header.php と、(これが重要!) footer.php にも、こんな対策をするとよい様です!
<?php
ob_start();
wp_head();
$wp_head_contents = ob_get_clean();
$wp_head_contents = str_replace('http://', '//',$wp_head_contents);
echo($wp_head_contents);
?>
これは header.php
footer.php は
<?php //wp_footer(); ?>
<?php
ob_start();
wp_footer();
$wp_footer_contents = ob_get_clean();
$wp_footer_contents = str_replace('http://', '//',$wp_footer_contents);
echo($wp_footer_contents);
?>
こんな感じで何とかなりました
http:// を // にしてしまうので、プロクシの問題を回避出来るようです…
これ、このブログにも入れないと….