Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memaksa HTTPS dalam Aplikasi Laravel?

Bagaimana untuk Memaksa HTTPS dalam Aplikasi Laravel?

Linda Hamilton
Linda Hamiltonasal
2024-12-11 15:57:14995semak imbas

How to Force HTTPS in Laravel Applications?

Ubah hala ke HTTPS dalam Laravel

Dalam Laravel, memaksa HTTPS pada aplikasi anda boleh dicapai dengan menggunakan kelas Middleware. Berikut ialah contoh pelaksanaan:

namespace MyApp\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\App;

class HttpsProtocol {

    public function handle($request, Closure $next)
    {
            if (!$request->secure() && App::environment() === 'production') {
                return redirect()->secure($request->getRequestUri());
            }

            return $next($request); 
    }
}

Untuk mengaktifkan middleware ini, tambahkannya pada kumpulan middleware dalam fail Kernel.php:

protected $middleware = [
    // ...
    'MyApp\Http\Middleware\HttpsProtocol'       
];

Secara lalai, kumpulan middleware web digunakan ke semua laluan, jadi tiada konfigurasi lanjut diperlukan.

Cloudflare Pertimbangan

Jika anda menggunakan Cloudflare, anda mungkin menghadapi gelung ubah hala. Ini kerana Cloudflare memajukan permintaan HTTP dengan pengepala "X-Forwarded-Proto" yang menunjukkan HTTPS. Untuk menangani perkara ini, tambahkan baris berikut pada perisian tengah anda:

$request->setTrustedProxies([$request->getClientIp()]);

Ini mempercayai IP dan pengepala yang disediakan oleh Cloudflare, memecahkan gelung.

Kemas kini untuk Versi Laravel< /h3>

Untuk Laravel versi 5.3 dan seterusnya: Tambahkan kelas perisian tengah ke kumpulan middleware "web" dalam fail Kernel.php.

Untuk Laravel versi 5.7 dan seterusnya:

  • Gunakan App::environment() dan bukannya env('APP_ENV') untuk semakan berasaskan persekitaran.
  • URL::forceScheme('https') tidak mengubah hala tetapi hanya membina pautan dengan HTTPS.

Atas ialah kandungan terperinci Bagaimana untuk Memaksa HTTPS dalam Aplikasi Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn