Zend framework 向zend router添加特定字符

Zend framework 向zend router添加特定字符,zend-framework,routing,Zend Framework,Routing,这里有没有在zend url中使用空格或“!”的方法? 我有以下路由代码: 'route' => '/city[/:action][/:id]', 'constraints' => array( 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 现在我可以有这种类型的URL:/city/index/Paris,但是如果我把它放在-/city/ind

这里有没有在zend url中使用空格或“!”的方法? 我有以下路由代码:

'route'    => '/city[/:action][/:id]',
 'constraints' => array(
 'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
 'id'     => '[a-zA-Z][a-zA-Z0-9_-]*',
  ),
现在我可以有这种类型的URL:/city/index/Paris,但是如果我把它放在-/city/index/newyork上,它就不起作用了,给我一个404错误。 我已经试着把这个写进“id”里了-

 '[a-zA-Z][a-zA-Z0-9_-][ ]*'

,但又是404

编辑

如果我加上西里尔文字的限制,像这样

'id'     => '[a-zA-Zа-яА-я][a-zA-Zа-яА-Я0-9_-]*',
我不能使用像/city/index/Мааа这样的url。
请帮帮我。

只需在正则表达式模式中添加一个空格。使用此“[a-zA-Z][a-zA-Z0-9_-]*”模式在路线中匹配您的id。不,它不起作用。甚至城市/指数/巴黎也停止了这方面的工作。URL不能包含文本空间。它必须使用百分比编码或使用URL安全字符的其他编码进行编码。明白了,谢谢。所以,在向数据库添加空间之前,我应该删除所有空格。有西里尔语的城市呢?我可以使用这样的URL,或者需要翻译吗?
'id'     => '[a-zA-Zа-яА-я][a-zA-Zа-яА-Я0-9_-]*',