Laravel возвращает http вместо https на производстве - PullRequest
0 голосов
/ 19 октября 2018

На моем производстве (aws) laravel возвращает http, даже если оно действительно https.

\Request::url(); // this returns http://...
\Request::isSecure()?'yes':'no'; // this returns 'no'

, и оно не изменится, если я вызову shema на http или https.Когда я навязываю схему следующим образом:

\Illuminate\Support\Facades\URL::forceScheme('https');

, единственное, что изменяется, это

url()->current(); // this returns https://...

. Я не могу воспроизвести проблему в моей местной / dev усадьбе, она отлично работает на приусадебном участке.

(уровень 5,7)

1 Ответ

0 голосов
/ 19 октября 2018

Для любых маршрутов, для которых вы хотите использовать https, вы должны обернуть их в промежуточное ПО, обеспечивающее безопасное соединение.Общий пример, который выполняет только перенаправление на производство, показан здесь:

<?php

namespace App\Http\Middleware;

use Closure;

class HttpsProtocol {

    public function handle($request, Closure $next)
    {
            if (!$request->secure() && env('APP_ENV') === 'production') {
                return redirect()->secure($request->getRequestUri());
            }

            return $next($request); 
    }
}

Чтобы применить это к вашим маршрутам, вы должны зарегистрировать его, где бы вы ни назначали свое промежуточное программное обеспечение - либо как группу в маршрутах / сети.php-файл или в приложении \ Http \ Kernel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...