2013-03-19 2 views
0

Я разрабатываю Zend Application, в котором мне нужно реализовать slug based URL, так как Wordpress делает для своей страницы/сообщения. Я сделал это для static pages, его работая отлично, как мне нужно. Вот другой сценарий. Я пробую маршрут к соответствующему модулю/контроллеру.Zend framework SEO дружественная маршрутизация URL-адресов на основе категории/подкатегории/продукта slug

Есть две вещи

  1. В моем приложении Category/Subcategory есть. например:

    cat1, cat2

    subcat11, subcat12, subcat21, subcat22, subcat23

  2. Products, которые назначены на-крайней мере один subcategory. например:

    product1, prdocut2, product3

Примечание: Категория, категория, название продукта используется в примере, являются слизняк.

URL-адрес должен быть:

Для Категория: http://domain.com/cat1

Для Subcategory: http://domain.com/cat1/subcat11

Для продукта: http://domain.com/product1

Я разработал три контроллера для каждого. Листинг показывает их действие Index.

CategoryController, SubcategoryController, ProductController

Если я применяю маршрутизации в начальной загрузке приложения, индекс Сайта страница перенаправляет на страницу категории.

$categoryrouter = new Zend_Controller_Router_Route('/:categoryslug/', 
        array(
         'module' => 'default', 
         'controller' => 'category', 
         'action' => 'index', 
         'categoryslug' => 'mobiles' 
        ) 
); 

$chain->chain($categoryrouter); 

$router->addRoute('categoryrouter', $categoryrouter); 

Возможно, это дублированный вопрос, но я много искал и не нашел ничего подходящего ответа на эту проблему.

ответ

0

Просмотреть эту запись в блоге для получения информации о том, как это сделать: http://tfountain.co.uk/blog/2010/9/9/vanity-urls-zend-framework. Вам понадобятся два отдельных класса маршрута: один для категорий и один для сообщений.

Вы также, кажется, используете цепочку маршрутов только для одного маршрута, что необязательно. Также будьте осторожны с терминологией, ваше приложение имеет один «маршрутизатор», который имеет много «маршрутов».

+0

Спасибо, я уже проверил эту ссылку. он работает хорошо только для одного пули (для категории http://domain.com/cat1 и продукта http://domain.com/product1), но не для подкатегории http://domain.com/cat1/subcat11. У меня есть статические страницы и страницы клиентов. Для чего я использовал Route Chaining. – Tsimtsum

+0

Принцип все тот же для иерархической маршрутизации, но в функции соответствия класса маршрута вы проверяете pathBits в цикле –