【发布时间】:2020-10-31 11:00:46
【问题描述】:
我有一个中间件可以像这样重定向到 HTTPS:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class HttpsProtocolMiddleware
{
public function handle($request, Closure $next)
{
if (!$request->secure() && app()->environment('production')) {
dd("need to redirect");
return redirect()->secure($request->getRequestUri());
}
return $next($request);
}
}
但是它不起作用,因为如果转到https://project.domain.com,我会从浏览器获得too many redirection(现在使用dd,即使我通过HTTPS 访问我的网站,我也会看到dumo)
编辑:
我已经测试了添加
Request::setTrustedProxies([$request->getClientIp()],Request::HEADER_X_FORWARDED_ALL);
作为第一行,在TrustProxies
protected $proxies = '*';
但没有成功
【问题讨论】:
-
其他东西可能正在将 (apache/nginx) 重定向到 http (并且 $request->secure() 返回 false)...检查 chrome 开发工具中的实际请求/重定向(网络标签)
-
@RokSprogar 我检查了哪个标题?
-
@RokSprogar 如果你愿意...
https://gestionale-marco.herokuapp.com/ -
你的环境是什么?
-
@James 我已经在 Heroku 上部署了项目
标签: php laravel https middleware