是否可以创建指向绝对外部URL的路由?

时间:2013-06-20 13:05:30

标签: php symfony routing yaml

Google以及Symfony Docs和Cookbook都没有帮助。

假设我们在Symfony2上运行了一个名为http://www.example.com的网站,我们正在使用位于http://example.externalservice.com的外部常见问题解答和支持服务(无论出于何种原因)。

我们现在认为这是一个合适的解决方案,可以创建指向外部常见问题解答服务的路由,从而产生类似的内容:

# ../config/routing.yml
[...]

info.faq:
    url: http://example.externalservice.com     # Surely isn't working

[...]

这是因为可能需要在中期内使用位于应用程序内的自制解决方案替换支持服务。此路由用于各种页面,因此在支持服务更改时不能选择硬编码或替换它们。

所以,我的问题是:

  • 这是正确的做法,还是应该使用位于parameters.ymlconfig.yml的TWIG分机和参数?
  • 如果这是正确的方法,是否可以在不修改路由组件本身的情况下创建这样的路由?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

来自Symfony2文档:

root:
    path:  /
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: http://www.google.fr
        permanent: true

有关重定向的更多信息,请阅读以下文档:

How to configure a redirect to another route without a custom controller

答案 1 :(得分:1)

在你的parameters.yml add

external_url: http://example.externalservice.com 

然后在你的控制器中:

$url = $this->container->getParameter('external_url');
return $this->redirect($url);