我目前使用:
Route::filter('no.ssl', function()
{
if( Request::secure())
{
return Redirect::to(Request::path(), 302, array(), false);
}
});
问题来自于这部分:
Request::path()
如果用户访问的网址是:
example.com/bla?p=1
然后它将重定向到:
example.com/bla
如何包含查询参数?
我看了here,并且没有明显的方法来包含查询参数。
答案 0 :(得分:0)
更新的API文档位于此处:http://laravel.com/api/4.2/
如果你查找Request类,你会找到一个fullUrl()
方法,它应该做你想要的。
if (null !== $qs = $request->getQueryString()) {
$qs = '?'.$qs;
}
return $request->getBaseUrl().$request->getPathInfo().$qs;
答案 1 :(得分:0)
这解决了我的问题:
Route::filter('force.ssl', function()
{
if( ! Request::secure())
{
return
Redirect::secure(
Request::path().(empty($_SERVER['QUERY_STRING']) ? '' : '?'.$_SERVER['QUERY_STRING'])
);
}
});
Route::filter('no.ssl', function()
{
if( Request::secure())
{
return Redirect::to(
Request::path().(empty($_SERVER['QUERY_STRING']) ? '' : '?'.$_SERVER['QUERY_STRING']), 302, array(), false
);
}
});