【问题标题】:Zend Framework - how to rewrite url to seo friendly urlZend Framework - 如何将 url 重写为 seo 友好的 url
【发布时间】:2012-03-22 17:32:00
【问题描述】:

我在 Zend Framework 上获得了网站(我在 Zend 中完全是菜鸟)。例如,我想让一个 URL“somewebsite.com/test/about”看起来像这样“somewebsite.com/for-fun-link”。我如何在 Zend 中实现这一点?我是 Zend 和 Apache 服务器的新手。我在 Zend 哪里重写?我希望将静态 URL somewebsite.com/page/about 重写为 somewebsite.com/about-product

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

【问题讨论】:

  • 这是 ZF 的黑暗艺术之一,因此您需要一个更窄的问题才能获得有用的答案。我所能做的就是建议开始here
  • 非常感谢。这对我有很大帮助。我没有 bootstrap.php 文件,但我将截屏视频中的代码应用到 index.php,它运行良好:)。再次感谢您的帮助。

标签: apache zend-framework url-rewriting


【解决方案1】:

在您的引导程序中,您需要配置一些“路由”。因此,如果您的引导程序以这样的方式结束:

$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_Controller_Router_Route_Static 获取您想要捕获的路径,然后是一组参数,包括控制器和操作(如果适用,还有模块)。

如果您想增加复杂性,您可以从数据库中加载路由,或者开始使用更多动态路由。此处的文档是有用的下一步:http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.standard

【讨论】:

    猜你喜欢
    • 2012-09-06
    • 2012-01-17
    • 1970-01-01
    • 2018-07-01
    • 2021-07-06
    • 2015-07-30
    • 2012-02-28
    • 2015-10-23
    • 2015-01-04
    相关资源
    最近更新 更多