2012-10-16 207 views
0

需要一个域名,我需要在我的symfony路由需要一个域名,我的路线如下所示:的Symfony 1.4路由

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 - 我刚刚得到的模块/操作不存在异常。

+1

这对你有用:http://stackoverflow.com/questions/7010630/url-encode-a-dot-in-url? – meijuh

+0

而这一个正则表达式:http://stackoverflow.com/a/1129242/569101 – j0k

回答

2

总结

点在Symfony的使用as segment separator。所以,你应该将此选项添加到您的路线,迫使Symfony的只使用/作为分隔符:

options: 
    segment_separators: [/] 

接下来,你的正则表达式是错误的,但这么has one for you

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

你的最终路径:

​​3210
+0

谢谢 - 这解决了我的问题 – Sunjalo