Apache Zend框架-如何将url重写为seo友好的url

Apache Zend框架-如何将url重写为seo友好的url,apache,zend-framework,url-rewriting,Apache,Zend Framework,Url Rewriting,我在Zend框架上获得了一个网站(我在Zend中完全是noob)。例如,我想让一个URL“somewebsite.com/test/about”看起来像这样“somewebsite.com/forfun链接”。我如何在Zend中实现这一点?我是Zend和Apache服务器的新手。我在Zend哪里重写?我想要静态URLsomewebsite.com/page/about重写到somewebsite.com/about product 最后一个问题:我通常在哪里创建重写?这取决于服务器/技术?在引导

我在Zend框架上获得了一个网站(我在Zend中完全是noob)。例如,我想让一个URL“
somewebsite.com/test/about
”看起来像这样“
somewebsite.com/forfun链接
”。我如何在Zend中实现这一点?我是Zend和Apache服务器的新手。我在Zend哪里重写?我想要静态URLsomewebsite.com/page/about重写到somewebsite.com/about product


最后一个问题:我通常在哪里创建重写?这取决于服务器/技术?

在引导过程中,您需要配置一些“路由”。因此,如果您的引导结束如下:

$frontController = Zend_Controller_Front::getInstance();
$frontController->dispatch();
$frontController = Zend_Controller_Front::getInstance();

$router = $frontController->getRouter();
$router->addRoute( 'mylovelyroute',
    new Zend_Controller_Router_Route_Static( 'for-fun-link',
        array( 'controller' => 'test', 'action' => 'about' )
    )
);
$router->addRoute( 'myotherroute',
    new Zend_Controller_Router_Route_Static( 'about-product',
        array( 'controller' => 'page', 'action' => 'about' )
    )
);
$router->addRoute( 'justonemore',
    new Zend_Controller_Router_Route_Static( 'another/longer/path',
        array( 'controller' => 'mycontroller',
            'action' => 'myaction',
            'someparameter' => 'foo'
        )
    )
);

$frontController->dispatch();
您只需添加一些管线定义,如下所示:

$frontController = Zend_Controller_Front::getInstance();
$frontController->dispatch();
$frontController = Zend_Controller_Front::getInstance();

$router = $frontController->getRouter();
$router->addRoute( 'mylovelyroute',
    new Zend_Controller_Router_Route_Static( 'for-fun-link',
        array( 'controller' => 'test', 'action' => 'about' )
    )
);
$router->addRoute( 'myotherroute',
    new Zend_Controller_Router_Route_Static( 'about-product',
        array( 'controller' => 'page', 'action' => 'about' )
    )
);
$router->addRoute( 'justonemore',
    new Zend_Controller_Router_Route_Static( 'another/longer/path',
        array( 'controller' => 'mycontroller',
            'action' => 'myaction',
            'someparameter' => 'foo'
        )
    )
);

$frontController->dispatch();
addRoute()
的第一个参数只是一个唯一的名称
Zend\u Controller\u Router\u Route\u Static
获取您想要捕获的路径,然后获取一系列参数,包括控制器和操作(以及模块,如果适用)


如果您想增加复杂性,可以从数据库中加载路由,或者开始使用更动态的路由。这里的文档是有用的下一步:

搜索自定义路线。。这是采埃孚的黑暗艺术之一,所以你需要一个更狭隘的问题才能得到有用的答案。我所能做的就是建议开始,非常感谢。这对我帮助很大。我没有bootstrap.php文件,但我将screencast中的代码应用到index.php中,它运行良好:)。再次感谢你的帮助。