@lemonlimelike

Как разрешить http трафик, а так же изменить все http запроса на https в Laravel?

Всем привет! имею две проблемы. Выгрузил свой проект на сервер(apache). Подключил cloudfare, подключил ssl. Теперь сайт находится на https. И тут пошли ошибки:
1) К примеру есть форма, в action указываю {{route('action')}}, и этот роут переносит на http, и вылазит такая ошибка
Заблокирована загрузка смешанного активного содержимого «http://
, но если в action указывать обычный путь, то есть /action, то запрос будет проходить через https, так вот, как исправить, чтоб именованный роут шел через https? Это только происходит с рутами, когда я указываю их имя в пути, как тут: <form action="{{route('name_route')}}"></form> или когда использую axios запрос и в Url указываю {{route('name_route')}}. То есть такие руты используют http протокол, а нужно https.
2) На сайте подключен скрипт, который идет только по http протоколу, а у меня сайт находится на https протоколе. И этот скрипт отказывается работать из-за этого. Как сделать, чтоб сервер пропускал этот скрипт?
  • Вопрос задан
  • 783 просмотра
Решения вопроса 1
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
В файле с роутами прописать
URL::forceScheme('https');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Barmunk
1. Создайте глобальный посредник http to https
<?php

namespace App\Http\Middleware;

use Closure;

class HttpsProtocol
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!$request->secure()) {
            return redirect()->secure($request->getRequestUri(), 301);
        }

        return $next($request);
    }
}


2. в env поменяйте http на https
APP_URL=https://site.ru

по проекту по умолчанию используйте {{route('action')}} для https

По второй проблеме выглядит как баг, лучше его отдельно изучить, чем подставлять костыли для фреймворка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы