Zend路由正则表达式为url中的一个字符

时间:2012-03-29 07:35:19

标签: regex zend-framework url-rewriting zend-route

对于web应用程序,我需要处理以下url结构:

http://foo.tld/a/foo

我需要为我的路径写一个正则表达式来处理/ a /这个部分必须只包含1个字符。

我现在处理:

routes.suggestions.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.suggestions.route = ":character/:q"
resources.router.routes.suggestions.defaults.module = "default"
resources.router.routes.suggestions.defaults.controller = "index"
resources.router.routes.suggestions.defaults.action = "search"
resources.router.routes.suggestions.defaults.character = ""

但如果与其他控制器网址冲突,例如'/ ajax / index',因为我现在会覆盖它。

有人可以帮我在上面的路线上放置一个正则表达式,使':character'只适用于一个角色吗?

此致 尼克

1 个答案:

答案 0 :(得分:2)

尝试添加此行:

resources.router.routes.suggestions.reqs.character = "\w"

这会将正则表达式\w(匹配1个字符a-z)添加到URL中的:character参数。如果你添加它,它只会路由到SearchController如果:q之前的URL参数是1个字符长。

另见Using Zend_Config with the RewriteRouter