さくらインターネットのSSLで、SNIを途中から導入したのですが、色々と問題多すぎました。
常時SSL化するためにリダイレクト処理をhtacessで進めました。
さくらのSNIの場合、特殊な書き方が必要なようです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteCond %{REQUEST_URI} !^/404error.html$
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>さくらのレンタルサーバでHTTPS(SNI SSL)な独自ドメインのWordpressサイトを構築する際の注意点 – Qiita
通常ページは、問題なくリダイレクト出来ましたが、動的に処理しているページで、file_get_contentsが動かなくなりエラーが出るようになりました。
どうやっても解決せず仕方がないので、htacessはやめて、PHPでリダイレクト処理することにしました。
<?php
if (empty($_SERVER['HTTPS'])) {
header("Location: https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}");
exit;
}
?>これで、SSL環境にリダイレクトできたので、次に www.ありに統一するための処理を作っていたところ、
if (strpos($_SERVER['HTTP_HOST'], 'www.') !== 0) {とか入れてみたのですが、何故か無限ループに突入してしまいました。
そこで、$_SERVER をvar_dumpしてみたところ、SCRIPT_FILENAMEやHTTP_HOSTに何故か、wwwが含まれていませんでした。
その為、判定ができず常にtrueなっていました。
あと、Cookie処理していたところがあるのですが、保存はできていたのですが、読み出せず困ったことになりました。
さくらのレンタルサーバーでCookieが使えないとき | nanoway
上記サイトを参考にコンパネからWebアプリケーションファイアウォールを無効にしたところ、無事動くようになりました。
www.統一は必須ではなかったので、これ以上の調査はせず力尽きました。




コメント