是否有可能创建一个指向绝对外部URL的路由?


Is it possible to create a route that points to an absolute external URL?

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

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

我们现在认为创建一个指向外部FAQ服务的路由将是一个合适的解决方案,这将导致如下内容:

# ../config/routing.yml
[...]
info.faq:
    url: http://example.externalservice.com     # Surely isn't working
[...]

这是因为在中期可能需要用位于应用程序内的自制解决方案取代支持服务。这个路由在不同的页面上使用,所以当支持服务改变时,硬编码或替换它们是不可能的。

我的问题是:

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

提前感谢。

来自Symfony2文档:

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

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

如何在没有自定义控制器的情况下配置重定向到另一个路由

在您的参数中。添加

external_url: http://example.externalservice.com 

then in your controller:

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