web-dev-qa-db-fra.com

Laravel: comment forcer HTTPS?

Je commence à développer une nouvelle grande application, et j'utilise Laravel cette fois, et c'est la première fois.

J'ai besoin de forcer HTTPS pour toutes les pages, ce n'est pas important si à partir de code ou par .htaccess, mais je ne suis pas en mesure de trouver un tutoriel simple.

Les documents officiels ne parlent pas de ce problème.

Pour info, mon .htaccess acutal est

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

Ma question est spécifique à Laravel 5, car je ne sais pas où et comment modifier ce fichier .htaccess. Et aussi je vous demande si c'est la bonne façon pour Laravel ou if Laravel a quelque chose de spécifique à configurer pour gérer les HTTP).

Alors ne fermez pas ma question et essayez d'être plus adhérent au sujet spécifique Laravel.

Si vous pouvez publier un moyen simple de modifier ce fichier ET/OU Quoi modifier dans la configuration Laravel pour gérer correctement https.

Mais en bref oui, je veux forcer chaque appel à transiter sur HTTPS.

10
realtebo

Vous devez l'ajouter à votre .htaccess fichier:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://YOURWEBSITEDOMAIN/$1 [R,L]

Voir ceci: http://www.inmotionhosting.com/support/website/ssl/how-to-force-https-using-the-htaccess-file

17
Mortada Jafar

Essayez d'ajouter ce code dans votre fichier .htaccess.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
10
Webinion

Lorsque vous souhaitez rendre toutes les URL avec https. La méthode la plus simple est d'utiliser le code ci-dessous dans la fonction boot () de app/Providers/AppServiceProvider.php:

\ URL :: forceScheme ('https');

4
Amitesh

Modifiez votre fichier .htaccess

Chage ton dominateur dans:

RewriteCond% {HTTP_Host} mydomain.com [NC]

RewriteRule ^ (. *) $ https: // mondomaine / $ 1 [R, L]

<IfModule mod_rewrite.c>
  <IfModule mod_negotiation.c>
      Options -MultiViews
  </IfModule>

  RewriteEngine On

  # Added to Force HTTPS
  RewriteCond %{HTTP_Host} mydomain\.com [NC]
  RewriteCond %{SERVER_PORT} 80
  RewriteRule ^(.*)$ https://mydomain/$1 [R,L]

  # Redirect Trailing Slashes If Not A Folder...
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)/$ /$1 [L,R=301]

  # Handle Front Controller...
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [L]

  # Handle Authorization Header
  RewriteCond %{HTTP:Authorization} .
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
2
fcva

Ajoutez ceci à la méthode de démarrage dans AppServiceProvider

if($this->app->environment('production'))
{
   $this->app['request']->server->set('HTTPS','on');
}
1
Manford Benjamin

Cela a fonctionné pour moi

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^(.*)$ public/$1 [L]
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} !^public [L,R=301]
</IfModule>
1
kelvin

Vous pouvez commencer par chercher ici. Il y a des tonnes de questions pour le même problème avec des réponses.

https://stackoverflow.com/a/4399158/5892849

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
0
Sandeesh

Essayez de changer le "APP_URL" dans le fichier .env à partir de

APP_URL = http://example.com

à

APP_URL = https://example.com
0
Jeybin George