当前位置: 首页 > 知识库问答 >
问题:

aws ec2重定向循环上的Laravel 5中间件https

孟德曜
2023-03-14

基于此,我在我的应用程序中添加了相同的中间件,结果是重定向循环。

如果用户未通过身份验证,应用程序将重定向到登录页面,因此对我来说,这就是问题所在。也许不是。

ssl证书已正确安装且有效(如果我手动转到https://myapp.org 它按预期工作)。

主要的问题是,我使用整个应用程序的助手url()生成网址,现在我需要重定向到安全的网址。

我尝试删除该中间件,并将重定向添加到.htaccess,但结果是相同的(此网页有一个重定向循环)。

更新我试着调试这个问题,看起来好像没有重定向到https,这就是重定向循环的原因。我为标题添加了日志。。。。

{
  "host": [
    "myapp.org"
  ],
  "accept": [
    "text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,*\/*;q=0.8"
  ],
  "user-agent": [
    "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/41.0.2272.76 Safari\/537.36"
  ],
  "accept-encoding": [
    "gzip, deflate, sdch"
  ],
  "accept-language": [
    "en-US,en;q=0.8"
  ],
  "cookie": [
    "XSRF-TOKEN=..."
  ],
  "x-forwarded-for": [
    "IP ADDRESS"
  ],
  "x-forwarded-host": [
    "myapp.org"
  ],
  "x-forwarded-server": [
    "ip-IP.compute.internal"
  ],
  "connection": [
    "Keep-Alive"
  ]
}

我还记录了$request的值-

这是我的中间件(日志的结果在每条日志行旁边的注释中)

<?php namespace App\Http\Middleware;

use Closure;
use Log;

class HttpsProtocol
{
  /**
   * Redirect to https.
   *
   * @param  \Illuminate\Http\Request  $request
   * @param  \Closure  $next
   *
   * @return mixed
   */
  public function handle($request, Closure $next)
  {
    if(!$request->secure() && app()->environment() === 'production') {
      Log::info(app()->environment()); // "production"
      Log::info($request->secure()); // ""
      Log::info($request->header('x-forwarded-proto')); // ""
      Log::info(json_encode($request->header())); // The json just posted
      Log::info($request->getRequestUri()); // "/auth/login"
      return redirect()->secure($request->getRequestUri());
    }

    return $next($request);
  }

}

我的应用程序是在弹性豆茎(EC2单实例)。任何帮助都将不胜感激,谢谢。


共有1个答案

臧增
2023-03-14

有一个包和一个要点可以解决上述问题。

 类似资料:
  • 我有一个小难题,我正在尝试建立一个登录系统,它使用laravel auth脚手架将普通用户与管理员用户区分开来。 问题是它在中间件中处于无限重定向循环中。 在我按下登录按钮后,它会不断重定向到一条路线,问题是,我如何才能用“laravel方法”或任何其他方法解决这个问题。 这是我的控制器:1。基本家庭控制器: 主管理控制器-入口控制器: 登录控制器(默认的一个从auth scaffolding-由

  • 我找不到我的谜题。当我加载页面时,chrome会说:localhost页面不工作,localhost重定向了你太多次。我猜这是在创造一个循环。我可能做错了一些我无法得到的事情。这是我的密码。 授权控制器 模型 Authenticate.php config/auth.php

  • 我正在处理一项要求,即在记录更新/插入后发送电子邮件,其中我将页面URL作为“单击此处”文本发送,当用户单击该链接时,无论用户是否登录,他都将被重定向到该页面。 现在,如果用户已经登录,则该页面将正常打开,但如果用户未登录,则需要在登录后重定向回上一页。 我的问题在这里是我无法重定向回上一页用户试图访问之前登录通过点击这里链接从电子邮件 我已经找到了一些解决方案,但它们都不起作用。我尝试过的解决方

  • 我有一个oauth2客户端spring启动应用程序,其依赖项为:-spring-boot 1.2.0.rc1-spring-security-OAUTH2 2.0.4.release-spring-security3.2.5.release 客户端进行身份验证,身份验证在SecurityContextHolder中设置,但当请求重定向到原始url时,筛选器链将再次开始处理。我注意到在中,conte

  • 我想问一下HTTP到HTTPS的重定向。正如我们所知,重定向是通过从web服务器端重定向来实现的。但是,当涉及到https重定向时,它可以通过两种方式完成,服务器端()和应用程序端()。我想知道: 以下哪种方法有效且性能更好。 考虑到同一服务器上的多个域和域,每种方法的优缺点 非常感谢。 参考: 将Laravel中的WWW重定向到非WWW-堆栈溢出

  • 我们最近在Drupal前面加了清漆,因为服务器负载很重,我们总体上非常满意。 剩下的唯一问题是,我们有时在缓存的数据中有一个无限的重定向循环。我们通过HTTP监控发现了这一点。我们每分钟都会查看头版。缓存中的页面有时包含完整的首页,但设置了一个位置头,将用户再次发送到首页。 我们不太确定是什么导致了这一点,但也不知道如何找到这一点。当然,处理这个问题的最好方法是在drupal方面,但我们无法真正说