laravel 重定向 https 变 http 问题

2022-07-12 09:59:54 +08:00
 exqibao

描述

最近搭了一个 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 的地址上。

2047 次点击
所在节点    PHP
5 条回复
aababc
2022-07-12 10:03:13 +08:00
exqibao
2022-07-12 10:13:20 +08:00
@aababc 对 php 不是很了解,trusted-proxies ,URL::forceScheme('https')之类的方法都试过没生效,很明显自己方法不对,只有直接 replace 是成功了的。不希望入侵代码,希望通过外围的.env 和 nginx.conf 解决问题。
exqibao
2022-07-12 10:57:23 +08:00
@aababc 感谢,创建 TrustProxies.php ,再 Kernel.php 需要引入,之前是少了引入这一步,现在可以了。
Trim21
2022-07-12 19:37:07 +08:00
可以在 Nginx 里设置 HTTP 转跳 HTTPS ,再加 hsts 。
exqibao
2022-07-13 14:09:23 +08:00
@Trim21 感谢,这方法也行的,不过原来 blessing-skin-server 是以插件的形式解决这问题的,就是 TrustProxies.php 的方式,图形界面上操作安装一个插件就完美解决了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865579

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX