我正在使用laravel过滤器将传入的http
重定向到https
// SSL
Route::filter('force.ssl', function()
{
if( ! Request::secure())
{
return Redirect::secure(Request::path());
}
});
并在控制器中
$this->beforeFilter('force.ssl');
当问题http
是这样时,问题就出现了
http://myweb.com?cod=123&page=2
它会重定向到https://myweb.com/
并丢失参数?cod=123&page=2
如何强制使用SSL并保留参数?
感谢。
我正在使用laravel 4
答案 0 :(得分:0)
答案很简单就是这个。
将此添加到您的filters.php:
App::before(function($request)
{
//
if( ! Request::secure() )
{
return Redirect::secure( Request::path() );
}
});
这会使每个请求都成为https。
答案 1 :(得分:0)
我使用类似于@osleonard的东西,但它删除了URL中的GET参数,所以我想出了这个snippit。
将它放在您的filters.php文件中,并且在保留URL参数的同时将强制要求https:
//force ssl
App::before(function () {
if(!Request::secure() && App::environment() != 'local')
{
$baseHost = Request::getHttpHost();
$requestUri = Request::getRequestUri();
$newLink = 'https://'.$baseHost.$requestUri;
return Redirect::to($newLink);
}});