さくらサーバでhttpsアクセスしてもhttpsアクセスしたことにならない
お客さんがさくらサーバでSSL設定されたのですが、httpsアクセスしてもhttpsアクセスしたことにならない。httpsアクセスすると$_SERVER[‘HTTPS’]がセットされるはずですがない。これがセットされてない場合、httpsのURLにリダイレクトするような設定をしてたのでリダイレクトループになりました。
参考:サクラのレンタルサーバーで共有SSLを使うとHTTPSを認識しない問題
if (!isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR'])) {}$_SERVER[‘HTTP_X_SAKURA_FORWARDED_FOR’]がセットされてなければhttpsじゃないと判断できるらしい。
下記のような感じでやったらできた。
private function _chk_https(){ if(empty($_SERVER['HTTPS']) && !isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR'])){ $this->_forceSSL(); }}
private function _forceSSL(){ return $this->redirect('https://'.env('SERVER_NAME').$this->here);}