How to force Laravel Project to use HTTPS for all routes? How to force Laravel Project to use HTTPS for all routes? php php

How to force Laravel Project to use HTTPS for all routes?


Place this in the AppServiceProvider in the boot() method

if($this->app->environment('production')) {    \URL::forceScheme('https');}


Here are several ways. Choose most convenient.

  1. Configure your web server to redirect all non-secure requests to https. Example of a nginx config:

    server {    listen 80 default_server;    listen [::]:80 default_server;    server_name example.com www.example.com;    return 301 https://example.com$request_uri;}
  2. Set your environment variable APP_URL using https:

    APP_URL=https://example.com
  3. Use helper secure_url() (Laravel5.6)

  4. Add following string to AppServiceProvider::boot() method (for version 5.4+):

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

Update:

  1. Implicitly setting scheme for route group (Laravel5.6):

    Route::group(['scheme' => 'https'], function () {    // Route::get(...)->name(...);});


You can set 'url' => 'https://youDomain.com' in config/app.php or you could use a middleware class Laravel 5 - redirect to HTTPS.