Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于类别/子类别/产品段塞的Zend framework SEO友好URL路由_Php_Mysql_Zend Framework_Zend Framework Routing - Fatal编程技术网

Php 基于类别/子类别/产品段塞的Zend framework SEO友好URL路由

Php 基于类别/子类别/产品段塞的Zend framework SEO友好URL路由,php,mysql,zend-framework,zend-framework-routing,Php,Mysql,Zend Framework,Zend Framework Routing,我正在开发一个Zend应用程序,在其中我需要实现slug-based URL,就像Wordpress为其页面/帖子所做的那样。我已经为静态页面完成了这项工作,它可以根据我的需要正常工作。这里是不同的场景。我正在尝试路由到相应的模块/控制器 有两件事 在我的应用程序中,Category/Subcategory。例如: cat1、cat2 subcat11、subcat12、subcat21、subcat22、subcat23 至少分配给一个子类别的产品。例如: product1、prdocut2、

我正在开发一个
Zend应用程序
,在其中我需要实现
slug-based URL
,就像
Wordpress
为其页面/帖子所做的那样。我已经为
静态页面
完成了这项工作,它可以根据我的需要正常工作。这里是不同的场景。我正在尝试路由到相应的模块/控制器

有两件事

  • 在我的应用程序中,
    Category/Subcategory
    。例如:

    cat1、cat2

    subcat11、subcat12、subcat21、subcat22、subcat23

  • 至少分配给一个子类别的产品
    。例如:

    product1、prdocut2、product3

  • 注意:示例中使用的类别、子类别、产品名称都是slug。

    URL应为:

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

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

    对于产品:
    http://domain.com/product1

    我已经为每个设计了三个控制器。清单显示在他们的
    索引上

    类别控制器、子类别控制器、产品控制器

    若我在应用程序引导中应用路由,网站索引页将重定向到类别页

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

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

    有关如何解决这个问题的信息,请参阅此博客文章:。您将需要两个单独的路由类-一个用于类别,另一个用于帖子


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

    谢谢,我已经检查了这个链接。它只适用于一个slug(类别和产品),但不适用于子类别。我有一些静态页面和客户页面。对于这一点,我使用了路由链接。其原理对于Hierarchical路由仍然相同,但在Route类的match函数中,您检查循环中的路径位