@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 протоколе. И этот скрипт отказывается работать из-за этого. Как сделать, чтоб сервер пропускал этот скрипт?
  • Вопрос задан
  • 786 просмотров
Решения вопроса 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

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

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

Похожие вопросы