最近搭了一个 mc 的开源皮肤站(blessing-skin-server),使用了一段时间发现登录后清楚浏览器缓存,刷新页面会回到登录页面,登录回跳转到原来的地址,但是 https 变成了 http 。在 github 上提了问题,但还没大佬回Github 上提的问题。
server {
listen 443 ssl http2;
server_name blessing-skin.***.***;
location / {
proxy_pass http://172.17.0.1:57236;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
发现这个地方记录登录前的 url 地址的'last_requested_path' => $request->fullUrl(),,自己试过用 replace 把 http 变 https 是可以,但需要改代码,更新可能就覆盖回来了。
blessing-skin-server
是有一个.env
文件的,期望能通过修改.env
或者nginx.conf
配置实现$request->fullUrl()
获取到 https 的地址,正常跳转到 https 的地址上。
1
aababc 2022-07-12 10:03:13 +08:00
|
2
exqibao OP @aababc 对 php 不是很了解,trusted-proxies ,URL::forceScheme('https')之类的方法都试过没生效,很明显自己方法不对,只有直接 replace 是成功了的。不希望入侵代码,希望通过外围的.env 和 nginx.conf 解决问题。
|
3
exqibao OP @aababc 感谢,创建 TrustProxies.php ,再 Kernel.php 需要引入,之前是少了引入这一步,现在可以了。
|
4
Trim21 2022-07-12 19:37:07 +08:00 via Android
可以在 Nginx 里设置 HTTP 转跳 HTTPS ,再加 hsts 。
|