Zend Yönlendirici çeşitli URL'ler

1 Cevap php

Ben ZF router ile böyle bir şey başarmak istiyorum. ('controller' => 'products', 'action' => 'index')

//Show product details   
'http://mydomain.com/en/products/category-1/subcategory-3/product-name.htm'

//List products in subcategory-3
'http://mydomain.com/en/products/category-1/subcategory-3.htm'

//List products in category-1
'http://mydomain.com/en/products/category-1.htm'

//List products in all categories
'http://mydomain.com/en/products.htm'

Ben ayrı rota olarak her olasılığı belirtmek zorunda mı? Ya da daha iyi bir çözüm var mı? (Kullanma Route_Regex?)

1 Cevap

Öyle gibi boş varsayılan alarak bu yaklaştığı bir yol alabilirsiniz:

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"

Bu yol /en/products.htm üzerinde .htm uzantısı işlemek için gitmiyor, ve kategori / alt kategori / ürün bir .htm kendi değerlerine eklenir olabilir. Biraz ile istek .htm sıyırma işlemek için muhtemelen daha kolay. Htaccess RewriteRule yerine temel Zend_Router ile çevresinde çalışan daha büyü)

 RewriteRule /([^/]+)/products(.*)\.htm /$1/products$2

Alternatif kullanmak olacaktır bir Custom or Regular Expression route