web-dev-qa-db-fra.com

Comment forcer Laravel Le projet utilise HTTPS pour tous les itinéraires?

Je travaille sur un projet qui nécessite une connexion sécurisée.

Je peux configurer la route, l'URI, l'actif pour utiliser 'https' via:

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

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

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

Mais régler les paramètres tout le temps semble fatiguant.

Existe-t-il un moyen de forcer toutes les routes à générer des liens HTTPS?

20
Nelson Melecio

Vous pouvez définir 'url' => 'https://youDomain.com' dans config/app.php ou vous pouvez utiliser une classe de middleware Laravel 5 - redirection vers HTTPS .

18
Mirceac21

Voici plusieurs façons. Choisissez le plus pratique.

  1. Configurez votre serveur Web pour rediriger toutes les demandes non sécurisées vers https. Exemple de configuration 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. Définissez votre variable d'environnement APP_URL en utilisant https:

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

  4. Ajoutez la chaîne suivante à la méthode AppServiceProvider :: boot () (à partir de la version 5.4):

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

Mise à jour:

  1. Schéma de configuration implicite pour le groupe de routes (Laravel5.6):

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

Placez ceci dans AppServiceProvider dans la méthode boot ()

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

Je l'ai utilisé à la fin du web.php ou api.php fichier et cela a parfaitement fonctionné:

URL::forceScheme('https');
6
lomelisan

Ajoutez ceci à votre code .htaccess

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

Remplacez www.votredomaine.com par votre nom de domaine. Cela forcera toutes les URL de votre domaine à utiliser https. Assurez-vous que le certificat https est installé et configuré sur votre domaine. Si https vert n'est pas sécurisé, appuyez sur la touche f12 de chrome) et corrigez toutes les erreurs diverses dans l'onglet Console.

J'espère que cela t'aides!

6
Srikanth Gopi

L'utilisation du code suivant dans votre fichier .htaccess redirige automatiquement les visiteurs vers la version HTTPS de votre site:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
4
arian
public function boot()
{
  if(config('app.debug')!=true) {
    \URL::forceScheme('https');
  }
}

dans l'application/Fournisseurs/AppServiceProvider.php

0
Markos F

essayez ceci - cela fonctionnera dans le fichier RouteServiceProvider

    $url = \Request::url();
    $check = strstr($url,"http://");
    if($check)
    {
       $newUrl = str_replace("http","https",$url);
       header("Location:".$newUrl);

    }
0
mostafa nahfouz