仅当用户代理匹配条件时,Symfony才进入路由?

时间:2018-10-10 10:50:33

标签: php symfony

问题

我有一个网络服务器,该服务器生成一个运行Angular的索引页面,该页面使用API​​调用来显示数据。

我也有由Angular API调用设置的元标记。

现在,如果我将我的网站发布在Facebook上,则不会初始化标签,因为Facebook scrawler不支持Javascript。

解决方案 检测Facebook用户代理服务器端,并使用API​​调用服务器端,指定将使用控制器操作的特定路由,该操作将返回已使用facebook所需的元数据初始化的索引页。

我尝试在Symfony路由器中使用read here中的condition选项,但出现以下错误:

Resources/config/routing.yml"
   contains unsupported keys for "bot_facebook_post": "condition"

这就是我的路线在yml中的样子:

bot_facebook_post:
    pattern: /locations/{location}
    condition: "request.headers.get('User-Agent') matches 'facebookexternalhit/1.1'"
    defaults: {
        _controller: Main:bot, slug: ""
    }

0 个答案:

没有答案