Как заставить проект Laravel использовать HTTPS для всех маршрутов?


Я работаю над проектом, для которого требуется безопасное соединение.

Я могу задать маршрут, uri, ресурс для использования "https" через:

Route::get('order/details/{id}', ['uses' => 'OrderController@details', 'as' => 'order.details', 'https']);

url($language.'/index', [], true)

asset('css/bootstrap.min.css', true)

Но постоянная настройка параметров кажется утомительной.

Есть ли способ заставить все маршруты генерировать HTTPS-ссылки?

Author: Nelson Melecio, 2016-03-06

5 answers

Вы можете установить 'url' => 'https://youDomain.com' в config/app.php или использовать класс промежуточного программного обеспечения Laravel 5 - перенаправление на HTTPS.

 12
Author: Mirceac21, 2017-05-23 12:34:27

Вот несколько способов. Выбирайте наиболее удобный.

  1. Настройте свой веб-сервер так, чтобы он перенаправлял все незащищенные запросы на https. Пример конфигурации nginx:

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name example.com www.example.com;
        return 301 https://example.com$request_uri;
    }
    
  2. Установите переменную среды APP_URL, используя https:

    APP_URL=https://example.com
    
  3. Используйте помощника secure_url() (Laravel5.6)

  4. Добавьте следующую строку в метод AppServiceProvider::boot() (для версии 5.4+):

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

Обновление:

  1. Неявная схема настройки для группы маршрутов (Laravel5.6):

    Route::group(['scheme' => 'https'], function () {
        // Route::get(...)->name(...);
    });
    
 4
Author: Prisacari Dmitrii, 2018-07-17 12:46:08

Добавьте это в свой код.htaccess

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]

Заменить www.yourdomain.com с вашим доменным именем. Это заставит все URL-адреса вашего домена использовать https. Убедитесь, что в вашем домене установлен и настроен сертификат https. Если вы не видите, что https выделен зеленым цветом как безопасный, нажмите f12 в chrome и исправьте все смешанные ошибки на вкладке консоли.

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

 3
Author: Srikanth Gopi, 2017-12-01 21:40:34

Я использовал это в конце файла routes.php, и он отлично работал:

URL::forceSchema('https');
 0
Author: lomelisan, 2018-07-26 18:53:36

Поместите это в AppServiceProvider в метод boot()

if($this->app->environment('production')) {
    URL::forceScheme('https');
}
 0
Author: FullStack, 2018-08-13 09:22:27