Вы можете получить маршрут, чтобы приблизить это, имея пустые значения по умолчанию, например:
resources.router.routes.products.route = ":lang/products/:category/:subcategory/:product"
resources.router.routes.products.defaults.category=""
resources.router.routes.products.defaults.subcategory=""
resources.router.routes.products.defaults.product=""
resources.router.routes.products.defaults.controller="products"
resources.router.routes.products.defaults.action="index"
Этот маршрут не будет обрабатывать ваше расширение .htm
на /en/products.htm
, и к категории / подкатегории / продукту может добавляться .htm
к их значениям. Вероятно, легче справиться с извлечением .htm
из запроса с помощью небольшого волшебства .htaccess RewriteRule
, чем обходить его с помощью базового Zend_Router)
RewriteRule /([^/]+)/products(.*)\.htm /$1/products$2
Альтернативой может быть использование маршрута с пользовательским или регулярным выражением