V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
exqibao
V2EX  ›  PHP

laravel 重定向 https 变 http 问题

  •  
  •   exqibao · 2022-07-12 09:59:54 +08:00 · 2028 次点击
    这是一个创建于 850 天前的主题,其中的信息可能已经有所发展或是发生改变。

    描述

    最近搭了一个 mc 的开源皮肤站(blessing-skin-server),使用了一段时间发现登录后清楚浏览器缓存,刷新页面会回到登录页面,登录回跳转到原来的地址,但是 https 变成了 http 。在 github 上提了问题,但还没大佬回Github 上提的问题

    • blessing-skin-server
    • nginx
    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 的地址上。

    5 条回复    2022-07-13 14:09:23 +08:00
    exqibao
        2
    exqibao  
    OP
       2022-07-12 10:13:20 +08:00
    @aababc 对 php 不是很了解,trusted-proxies ,URL::forceScheme('https')之类的方法都试过没生效,很明显自己方法不对,只有直接 replace 是成功了的。不希望入侵代码,希望通过外围的.env 和 nginx.conf 解决问题。
    exqibao
        3
    exqibao  
    OP
       2022-07-12 10:57:23 +08:00
    @aababc 感谢,创建 TrustProxies.php ,再 Kernel.php 需要引入,之前是少了引入这一步,现在可以了。
    Trim21
        4
    Trim21  
       2022-07-12 19:37:07 +08:00 via Android
    可以在 Nginx 里设置 HTTP 转跳 HTTPS ,再加 hsts 。
    exqibao
        5
    exqibao  
    OP
       2022-07-13 14:09:23 +08:00
    @Trim21 感谢,这方法也行的,不过原来 blessing-skin-server 是以插件的形式解决这问题的,就是 TrustProxies.php 的方式,图形界面上操作安装一个插件就完美解决了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2574 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:19 · PVG 23:19 · LAX 07:19 · JFK 10:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.