0

我需要在我的 symfony 路由中使用域名,我的路由如下所示:

domain_example:
url: /routing/example/:domain_name
param: { module: myModule, action: index, sf_format: json }
requirements: { domain_name: '/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}$/' }

我也试过:

requirements: { domain_name: '[/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}$/]' }

如果我这样称呼我的路线:mydomain.com/routing/example/otherdomain.com- 我只是得到模块/动作不存在异常。

4

1 回答 1

2

总结

点在 Symfony中用作段分隔符。因此,您应该将此选项添加到您的路由中,以强制 Symfony 仅用/作分隔符:

  options:
    segment_separators: [/]

接下来,您的正则表达式是错误的,但 SO有一个适合您

[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?

您的最终路线:

domain_example:
  url: /routing/example/:domain_name
  param:
    module: main
    action: index
    sf_format: json
  requirements:
    domain_name: '[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?'
  options:
    segment_separators: [/]
于 2012-10-16T11:57:20.847 回答