Laravelのリダイレクト処理で強制的にhttpsにする方法

以下のように結果画面へ一時リダイレクトをかける場合に、httpsスキームが引き継がれない場合があります。

return redirect('result', 307);

その場合、以下のようにsecure()を使えば、常にhttpsへリダイレクトされます。

return redirect()->secure('result', 307);

JavaScriptのassetなどを読み込む際に以下のようにbladeディレクティブを使用する場合もhttpsスキームが引き継がれない場合があります。

<script src="{{ asset('common/js/xxxx.js') }}"></script>


その場合はLaravelのヘルパー関数 secure_asset() を使用することでhttpsでassetを読み込むことが可能になります。

<script src="{{ secure_asset('common/js/xxxx.js') }}"></script>


プロジェクト全体に対してグローバルに https を強制させたい場合は、Laravelの AppServiceProvider で設定が可能です。具体的には以下のように記述することですべての url() や asset() などが https を前提に生成されるようになります。

use Illuminate\Support\Facades\URL;

public function boot()
{
    if (app()->environment('production')) {
        URL::forceScheme('https');
    }
}

上記の例では、environment(‘production’)で本番環境のみ、httpsを強制するように設定しています。

木曜日担当:nishida



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム