Modern internet equipped with more tools for security and easiness. Today we are learning how to redirect a url to HTTPS in laravel 5. So we are forcing the users to use https urls throughout application. We can use middleware for redirect all non-https urls to https url.
1) Creates a middleware, you can create manually or run the following command in command line
php artisan make:middleware HttpsProtocol
<?php namespace App\Http\Middleware; use Closure; class HttpsProtocol { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (!$request->secure() && env('APP_ENV') === 'prod') { return redirect()->secure($request->getRequestUri()); } return $next($request); } }
2)Then enable your middleware in the Kernel.php, by adding the line below to $middleware.
\App\Http\Middleware\HttpsProtocol::class
protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, \App\Http\Middleware\TrustProxies::class, //here \App\Http\Middleware\HttpsProtocol::class, ];
3)Finally change your application environment in .env to prod if not changed yet.
APP_NAME=Laravel APP_ENV=prod APP_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX= APP_DEBUG=false
Leave a Reply