Laravel Использовать HTTPS - PullRequest
       17

Laravel Использовать HTTPS

0 голосов
/ 14 февраля 2019

У меня есть проект, и я установил SSL-сертификат на сервере Ubuntu.Я выполнил каждое найденное решение, но все равно получаю это сообщение каждый раз, когда открываю страницу.

The requested URL /about was not found on this server.

Вот что я изменил, чтобы заставить Laravel использовать https:

1- IЯ изменил .htaccess в моей общей папке и добавил эти строки

# Added to Force HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

2- В app-> Providers-> AppServiceProvider Я добавил это в функцию boot ()

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

3- Я создал php artisan make: middleware ForceSSL и добавил приведенный ниже код к функции дескриптора

 if (!$request->secure() && in_array(env('APP_ENV'), ['stage', 'production'])) {
            return redirect()->secure($request->getRequestUri());
        }

        return $next($request);

и в Kernal.php

\MyApp\Http\Middleware\ForceSSL::class

В файле .env я изменилAPP_URL на https: // и у меня также есть изменения APP_URL в app.php внутри папки конфигурации.

Что мне здесь не хватает?Уже два дня я не могу понять, почему: (

1 Ответ

0 голосов
/ 14 февраля 2019

Есть несколько вещей, которые нужно убедиться, чтобы работать:

  1. Ваш маршрут работает в стандартном режиме HTTP без index.php в URL.Как иногда laravel.com/aboutus не работает, но laravel.com/index.php/aboutus работает.В этом случае вам нужно включить mod_rewrites в php, а затем добавить AllowOverride All в конфигурации вашего виртуального хоста и перезапустить apache.
  2. При переходе на HTTPS то, что вы настроили в laravel, сделает запрос laravel перенаправленным набезопасный HTTPS URL.Однако ваш сервер должен иметь возможность прослушивать, обрабатывать и отвечать на запросы HTTPS.
  3. Вам необходимо включить виртуальный хост yoru для прослушивания порта 443, который является портом SSL.Кроме того, если у вас есть SSL-сертификаты, их также необходимо настроить.
  4. Прежде чем узнавать, работает ли laravel по HTTPS, создайте простой файл php и попробуйте получить к нему доступ, используя HTTPS URL-адреса сервера.Если это работает, то вы можете проверить, что не так в Laravel.Если это не так, то SSL не настроен правильно на вашем сервере.
  5. Наконец, проверьте .htaccess условия перезаписи.
  6. php artisan config:clear и php artisan route:cache

Надеюсь, это поможет отладить это

...