Laravel redirect意图不在生产上工作

时间:2017-09-19 14:28:49

标签: laravel redirect elastic-beanstalk

以下内容在验证后处理Laravel-Application上的重定向:

protected function sendLoginResponse(Request $request)
{
    $request->session()->regenerate();

    $this->clearLoginAttempts($request);

    //dd(redirect()->intended());
    return $this->authenticated($request, $this->guard()->user())
        ?: redirect()->intended($this->redirectPath());
}

这在我的本地计算机上工作正常,但在运行Elastic Beanstalk的生产服务器上没有。

我的代码中的dd()在两个环境中都显示了正确的路径,但在生产时,它会重定向到网址/。为什么呢?

2 个答案:

答案 0 :(得分:1)

可能是因为您使用负载均衡的Amazon服务器。 负载均衡以这种方式工作:客户端使用HTTPS连接到负载平衡域,但负载均衡器本身将 HTTP 中的请求转发到实际服务器。这意味着服务器始终将请求的URL视为HTTP,而不是HTTPS。

我画了一张照片来进一步解释我的观点: Load Balancing HTTP explanation

答案 1 :(得分:0)

您可以创建一个帮助函数,以便从会话中获取目标网址

function intendedUrl($default = null)
{
  $default = $default ?: route('pages.home');//default route
  return session()->pull('url.intended', $default);
}