Laravel ペジネーションのリンクをHttps対応にする


発生した問題

一覧表示画面のペジネーションリンクから2ページ目の一覧表示画面へアクセスしようとしたところ、「アクセス時間が長すぎます。」と出て、一向に画面遷移しない状態が続きました。

デベロッパーツールからペジネーションのリンクを確認すると、httpsではなくhttpでアクセスしようとしてることがわかりました。
どうやらペジネーションのリンクは、1ページ目はhttpsに対応してるが、2ページ目以降はhttpで通信されてしまうらしい。。。

ということで、以下のように修正してhttpsでアクセスできるようにしてあげます!

AppServiceProvider.phpを修正

/app/Providers/AppServiceProvider.phpに以下のコードを追加。

public function boot(UrlGenerator $url)
{
    $url->forceScheme('https');

       // 以下を追記
    // ペジネーションリンクをhttps対応(.env APP_ENV=localでない場合https化)
    if (!$this->app->environment('local')) {
        $this->app['request']->server->set('HTTPS', 'on');
    }
}

最後に

これでペジネーションのリンクから2ページ目以降にアクセスできるようになりました!
独自ドメインをhttps化していたので、ペジネーションリンクもhttps対応にする必要があったようです。

参考記事