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.
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.
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:
Atas ialah kandungan terperinci Bagaimana untuk Memaksa HTTPS dalam Aplikasi Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!