Zend框架基于类别/子类别/产品slug的SEO友好URL路由

时间:2013-03-19 12:31:58

标签: php mysql zend-framework zend-framework-routing

我正在开发一个Zend Application,其中我需要slug based URLWordpress实现其页面/帖子。我已经为static pages完成了它,它的工作正常我需要。这是不同的场景。我正在尝试路由到相应的模块/控制器。

有两件事

  1. 在我的申请中,Category/Subcategory就在那里。例如:

    cat1, cat2

    subcat11, subcat12, subcat21, subcat22, subcat23

  2. 分配给至少一个Products
  3. subcategory。例如:

    product1, prdocut2, product3

  4. 注意:示例中使用的类别,子类别,产品名称是slug。

    网址应为:

    对于类别:http://domain.com/cat1

    对于子类别: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);
    

    可能是重复的问题,但我搜索了很多,没有找到适合这个问题的答案。

1 个答案:

答案 0 :(得分:0)

有关如何执行此操作的一些信息,请参阅此博客文章:http://tfountain.co.uk/blog/2010/9/9/vanity-urls-zend-framework。您需要两个单独的路线类 - 一个用于类别,一个用于帖子。

您似乎也只在一条路线上使用路线链接,这是不必要的。还要注意术语,你的应用程序有一个“路由器”,它有很多“路由”。