Laravel安全重定向过滤器在我的本地工作,但不在服务器上工作

时间:2014-08-11 11:01:48

标签: php laravel laravel-4

我有一个过滤器,可以将用户重定向到https://网站的一部分。我已经在我的本地进行了测试,它可以正常工作,但是当我在实时网站上测试它时,它根本不起作用。

任何想法为什么会这样?我的本地正在使用在Windows 7上运行的XAMPP。我的服务器是CentOS 6。

这是我的过滤器......

Route::filter('secure', function()
{
    if(!Request::secure())
    {
        return Redirect::secure(Request::path());
    }
};

我的路线

Route::group(array('before' => 'secure', 'prefix' => '{regionSlug}/{parkSlug}'), function(){
    // List of routes go here.
});
编辑:经过进一步研究后,我注意到它在我当地也没有正常工作。它工作的唯一原因是我的登录检查重定向并转移到网站的https部分。此路线组中的任何其他页面实际上都不起作用。我在每个get和post路由中取出了https,并设法修复它。

1 个答案:

答案 0 :(得分:0)

顺便说一句 强制通过HTTPS提供路由

Route::get('foo', array('https', function()
{
    return 'Must be over HTTPS';
}));

http://laravel.com/docs/routing#basic-routing

这可能是你的答案

Route::filter('secure', function()
{
    if(!Request::secure())
    {
        return Redirect::secure(Request::path(URL::to('/')));
    }
};