相关疑难解决方法(0)

在子目录中使用反向代理运行 Symfony 5

我喜欢在提供以下端点的反向代理后面运行 Symfony 5 应用程序:

https://my.domain/service1/

代理配置基本上是这样的:

ProxyPass /marketsy/ http://internal.service1/
Run Code Online (Sandbox Code Playgroud)

在反向代理连接到的服务器上,我使用以下 apache 规则为我的 Symfony 应用程序提供服务:

<VirtualHost *:80>
  ServerName internal.service1
  DocumentRoot /webroot/service1/public

 <FilesMatch \.php$>
     SetHandler proxy:unix:/run/php/php7.2-fpm-ui.sock|fcgi://localhost
     SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
     SetEnv HTTP_X_FORWARDED_PROTO "https"
 </FilesMatch>

 <Directory  /webroot/service1/public>
     AllowOverride None
     Require all granted
     FallbackResource /index.php
 </Directory>

 <Directory  /webroot/service1/public/bundles>
     FallbackResource disabled
 </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

应用程序本身是可重新访问的,但 Symfony 无法处理“service1”路径前缀。

例如,它尝试访问https://my.domain/_wdt/8e3926而不是https://my.domain/service1/_wdt/8e3926下的探查器,并且除了根路由之外,所有路由都不起作用:

例如:当我尝试访问https://my.domain/service1/my/page 时,我将被重定向到https://my.domain/my/page

现在我的问题是,当生成 urls 时,如何配置 Symfony 以了解“service1”路径前缀。

php symfony

5
推荐指数
1
解决办法
978
查看次数

如何在Symfony 4中为许多路由添加前缀

我希望我的命名空间“ App \ Controller \ Api”中的所有Controller操作路由都具有前缀“ / api”。我还想在控制器内部使用注释来设置其余路由。

在Symfony 3中,这是通过编辑'config / routing.yml'完成的:

app:
    resource: '@AppBundle/Controller/Api'
    type: annotation
    prefix: /api
Run Code Online (Sandbox Code Playgroud)

如何在Symfony 4中做到这一点?我需要捆绑吗?由于没有'config / routing.yml',我将使用哪个配置文件?

php routing symfony

2
推荐指数
1
解决办法
2436
查看次数

标签 统计

php ×2

symfony ×2

routing ×1