Our entire site is to be served over https. I have 'https' in each route. However, how do I redirect them to https if they attempt it over http?
Route::group(array('https'), function()
{
// all of our routes
}
Using App::before
You might be able to take advantage of the App::before()
block in the app/filters.php
file.
Change the block to include a simple check to see if the current request is secure, and if not, redirect it.
App::before(function($request) { if( ! Request::secure()) { return Redirect::secure(Request::path()); } });
Using Filters
Another option might be to create a filter like so. People generally store this also in app/filters.php
.
Route::filter('force.ssl', function() { if( ! Request::secure()) { return Redirect::secure(Request::path()); } });
You can then enforce that new filter to any of your routes, route groups, or controllers like this.
Individual Route
Route::get('something', ['before' => 'force.ssl'], function() { return "This will be forced SSL"; });
Route Group
Route::group(['before' => 'force.ssl'], function() { // Routes here. });
Controller
You'll need to do this in your controller's __construct()
method.
public function __construct() { $this->beforeFilter('force.ssl'); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With