Pocket
LINEで送る

お客さんがさくらサーバで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);
}
Pocket
LINEで送る

カテゴリー: OS・サーバ

コメントください

関連記事

OS・サーバ

Ubuntu16.04 – キーボードのキー割り当て(キーバインド)をxkbで変更する

ホームディレクトリに.xkbというのを作って、.xkb以下に設定ファイ 続きを読む …

OS・サーバ

windows10とubuntu16.04のデュアルブート

このubuntu16.04日本語版をデュアルブートさせました。このサイ 続きを読む …

OS・サーバ

UbuntuにzshとvimとGoを設定する

zshはoh-my-zshというのを使います。vimはdeinでプラグ 続きを読む …

%d人のブロガーが「いいね」をつけました。