我正在尝试在端口8080而不是端口80下运行基于Symfony2的Web应用程序。现在我注意到所有绝对路由都缺少URL中的端口分类。对于重定向也是如此,重定向也尝试重定向到端口80。 此外,在树枝模板中使用url('')时,不包含任何端口。
我到目前为止所做的是设置framework.router.http_port设置,它没有做任何事情。然后我尝试手动创建一个RequestContext并在bundle启动期间将其传递给路由器,但也无济于事。这是我尝试过的代码:
$router = $this->container->get('router');
if (!empty($_SERVER['HTTP_HOST'])) {
list($host, $port) = explode(':', $_SERVER['HTTP_HOST']);
$context = new RequestContext(
'',
$_SERVER['REQUEST_METHOD'],
$host,
(empty($_SERVER['HTTPS'])?'http':'https'),
$port
);
$router->setContext($context);
}
答案 0 :(得分:1)
来自OP:
我正在开发一台配备端口转发功能的VBox机器 我的localhost:8080到VBox端口80. Symfony路由显然 依赖于SERVER_PORT全局而不是在中指定的内容 请求URI。因此解决方案是重新配置nginx进行设置 8080作为SERVER_PORT,或者真的让它在端口8080上运行。