Laravel 在带有路径前缀的反向代理后面生成错误的路由

标签 laravel reverse-proxy symfony-http-foundation

在 Traefik 后面运行 Laravel 作为反向代理,带有路径前缀(例如 /api/ => Laravel)。

Laravel 由 Nginx 和 Php-fpm 提供服务。

Laravel 使用 Symfony HTTP 基础 生成路由 URL。

Symfony 没有正确地看到基本路径,并且生成没有 /api/ 前缀的 URL。

作为一个肮脏的解决方法,我通过在 index.php 上的第一行来修复它:

$_SERVER['SCRIPT_NAME'] = '/api/' . $_SERVER['SCRIPT_NAME'];

如何强制使用完整 URL 或基本路径?

最佳答案

这是由 Symfony 团队针对 Symfony 5.2 修复的:

我的原始问题:https://github.com/symfony/symfony/issues/36809

公关:https://github.com/symfony/symfony/pull/37734

关于Laravel 在带有路径前缀的反向代理后面生成错误的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61458282/

相关文章:

azure - 反向代理子文件夹到子文件夹

apache - Centos 6 上的 Apache 反向代理

php - Sf2 RedirectResponse 不工作

php - laravel 5 中的 Ajax post 请求返回错误 500(内部服务器错误)

laravel - 如何访问 Laravel 集合中的第 n 个项目?

nginx - docker pull push 登录成功后无法正常工作

php - 如何正确使用 silex "finish"中间件在后台处理繁重的操作?

php - 为什么构建 Symfony Response 需要这么长时间,使用这么多内存,我该怎么办?

php - 在 Laravel 中将 cURL 请求转换为 Guzzle

Laravel Eloquent ORM - 如何获取数组中集合的所有属性?