Symfony2:路由忽略URL中的端口

时间:2011-11-07 10:28:58

标签: php http symfony

我正在尝试在端口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);
}

1 个答案:

答案 0 :(得分:1)

来自OP:

  

我正在开发一台配备端口转发功能的VBox机器   我的localhost:8080到VBox端口80. Symfony路由显然   依赖于SERVER_PORT全局而不是在中指定的内容   请求URI。因此解决方案是重新配置nginx进行设置   8080作为SERVER_PORT,或者真的让它在端口8080上运行。