Home >Backend Development >PHP Tutorial >How to Implement HTTPS Redirection in Laravel 5 Using Middleware?
Laravel 5: Implementing HTTPS Redirection with Middleware
In Laravel 5, enforcing HTTPS access for your application can be achieved using Middleware. Here's a step-by-step guide on how to accomplish this:
1. Create a Middleware Class
Begin by creating a new Middleware class:
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); } }
2. Apply Middleware to Requests
Next, register the middleware at app/Http/Kernel.php by adding it to the $middleware array:
protected $middleware = [ 'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode', 'Illuminate\Session\Middleware\StartSession', 'Illuminate\View\Middleware\ShareErrorsFromSession', // Add your middleware here 'MyApp\Http\Middleware\HttpsProtocol' ];
3. Configure for Cloudflare
If you're using Cloudflare, add the seguintes line to your Middleware:
$request->setTrustedProxies([$request->getClientIp()]);
4. Handle Exceptions in Laravel v5.7
In Laravel v5.7, redirecting non-HTTPS requests using URL::forceScheme('https') no longer redirects the request. To ensure proper redirection, use the method described above.
Conclusion
By implementing this Middleware, you can force HTTPS access for your Laravel 5 application, even in situations where only specific domains use SSL. This approach is flexible and allows for customization based on your specific requirements and environment.
The above is the detailed content of How to Implement HTTPS Redirection in Laravel 5 Using Middleware?. For more information, please follow other related articles on the PHP Chinese website!