gpt4 book ai didi

Symfony 路由器重定向到 https 应用程序上的 http

转载 作者:可可西里 更新时间:2023-11-01 15:28:02 25 4
gpt4 key购买 nike

我正在将我的应用程序从 https://mywebsite.com (1) 迁移到 https://otherwebsite.com ( 2)该应用程序托管在不同的服务器上

下面的代码在 (1) 上运行良好,生成的 url 的方案是 https。(2) 上的相同代码使用 http 方案生成 url

$filterUrl = $this->router->generate('liip_imagine_filter', $params, UrlGeneratorInterface::ABSOLUTE_URL);

路由定义为

<route id="liip_imagine_filter" path="/media/cache/resolve/{filter}/{path}" methods="GET">
<default key="_controller">%liip_imagine.controller.filter_action%</default>
<requirement key="filter">[A-z0-9_\-]*</requirement>
<requirement key="path">.+</requirement>
</route>

Symfony 路由器的经典用法,你有什么想法为什么在 (1) 上我得到 https 而在 (2) 上我有 http 吗?

最佳答案

由于您没有将 schemeshost 属性传递给路由 liip_imagine_filter,因此 UrlGenerator 使用当前请求的属性。

问题是 PHP 从 Web 服务器接收请求信息,有时它得到的不是您所期望的。可能有某种反向代理,例如 Nginx,它接受来自 Internet 的 HTTPS 请求并通过 HTTP 将它们转发到另一个 Nginx,最后 symfony 接收 HTTP 方案。

查明反向代理后面的 (2) 服务器是否创建 test.php 文件:

<?php

echo $_SERVER['REQUEST_SCHEME'];

会输出当前的请求方案。

要将 Symfony 设置为在反向代理下工作,请阅读官方文档中的这篇文章:https://symfony.com/doc/current/deployment/proxies.html

关于Symfony 路由器重定向到 https 应用程序上的 http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48008731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com