it-swarm.com.de

Wie zwinge ich Laravel Project, HTTPS für alle Routen zu verwenden?

Ich arbeite an einem Projekt, das eine sichere Verbindung erfordert.

Ich kann die Route, die URL und das Asset für die Verwendung von "https" festlegen:

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

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

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

Aber die Einstellung der Parameter scheint die ganze Zeit anstrengend.

Gibt es eine Möglichkeit, alle Routen zum Generieren von HTTPS-Links zu zwingen?

20
Nelson Melecio

Sie können 'url' => 'https://youDomain.com' im config/app.php oder Sie könnten eine Middleware-Klasse verwenden Laravel 5 - Weiterleiten an HTTPS .

18
Mirceac21

Hier gibt es mehrere Möglichkeiten. Wählen Sie am bequemsten.

  1. Konfigurieren Sie Ihren Webserver so, dass alle nicht sicheren Anforderungen an https umgeleitet werden. Beispiel einer Nginx-Konfiguration:

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name example.com www.example.com;
        return 301 https://example.com$request_uri;
    }
    
  2. Setzen Sie Ihre Umgebungsvariable APP_URL mit https:

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

  4. Fügen Sie der AppServiceProvider :: boot () -Methode folgende Zeichenfolge hinzu (ab Version 5.4):

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

Aktualisieren:

  1. Schema für Routengruppe implizit festlegen (Laravel5.6):

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

Fügen Sie dies in den AppServiceProvider in der boot () -Methode ein

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

Ich habe dies am Ende des web.php oder api.php Datei und es hat perfekt funktioniert:

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

Fügen Sie dies Ihrem .htaccess-Code hinzu

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

Ersetzen Sie www.ihredomain.com durch Ihren Domainnamen. Dadurch werden alle URLs Ihrer Domain gezwungen, https zu verwenden. Stellen Sie sicher, dass das https-Zertifikat in Ihrer Domain installiert und konfiguriert ist. Wenn https in grün nicht als sicher angezeigt wird, drücken Sie die Taste f12 auf chrome und beheben Sie alle gemischten Fehler auf der Registerkarte "Konsole".

Hoffe das hilft!

6
Srikanth Gopi

Durch die Verwendung des folgenden Codes in Ihrer .htaccess-Datei werden Besucher automatisch zur HTTPS-Version Ihrer Website umgeleitet:

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');
  }
}

in app/Providers/AppServiceProvider.php

0
Markos F

probieren Sie dies aus - es funktioniert in der RouteServiceProvider-Datei

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

    }
0
mostafa nahfouz