Регулярное выражение Zend route для одного символа в URL

Для веб-приложения мне нужно обработать следующую структуру 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 = ""

Но если он конфликтует с другими URL-адресами контроллера, такими как «/ajax/index», потому что я перезаписываю его сейчас.

Может ли кто-нибудь помочь мне разместить регулярное выражение на указанном выше маршруте, чтобы сделать «:character» доступным только для одного символа?

С уважением, Ник


person directory    schedule 29.03.2012    source источник


Ответы (1)


Попробуйте добавить эту строку:

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

Это добавит регулярное выражение \w (соответствует 1 символу az) к параметру :character в URL-адресе. Если вы добавите это, он будет перенаправлен на SearchController только в том случае, если параметр URL перед :q имеет длину 1 символ.

См. также Использование Zend_Config с RewriteRouter. .

person drew010    schedule 29.03.2012
comment
Большое спасибо, именно то, что мне нужно было сделать =) - person directory; 29.03.2012