在Laravel中强制HTTPS导致登录重定向

时间:2019-06-15 00:26:09

标签: php laravel

在Laravel 5.8项目上生产时,我在AppServiceProvider中使用以下代码来强制HTTPS:

if(App::environment() === 'production') {
    URL::forceScheme('https');
}

我对forceScheme()的理解是,它没有进行任何重定向,只是在链接开始时将http换成了https

我正在通过Laravel Telescope监视页面加载,并且对于每个请求,它还会发出以下附加请求:

enter image description here

所以有2个问题。我对forceScheme()的理解不正确吗?无需在Laravel 5.8上重新加载即可实现HTTPS的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用.htaccess轻松地做到这一点。打开您的公用文件夹,并将以下代码放入.htacess文件中:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

另一种解决方案:

if (env('APP_ENV') === 'production') {
    $this->app['request']->server->set('HTTPS', true);
}

希望有帮助。

答案 1 :(得分:0)

将其添加到您的 AppserviceProvider 或为此创建中间件

if($this->app->environment('production')) {
    URL::forceScheme('https');
} 

或使用.htaccess

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]