1

我是 Zend 的新手,所以请帮我解决这个问题,因为我已经搜索了很多并尝试了很多,我真的做到了。

这是一个非常古老的问题:

这是我当前的网址:

www.sample.com/blog/detail/index/id/5

通缉:

www.sample.com/url-rewrite-tips

好吧,我把下面的代码放在 bootstrap.php

$router = Zend_Controller_Front::getInstance()->getRouter();
$route = new Zend_Controller_Router_Route(
                'url-rewrite-tips',
                array(
                     'module'     => 'blog',
                     'controller' => 'detail',
                     'action'     => 'index',
                     'id'         => '5'
                )
);
$router->addRoute('url-rewrite-tips', $route);

它正在工作,但它也是一个硬代码。我试图在 bootstrap.php 中获取参数,但失败了。

现在,我有 100 多个 id。但是,我尝试将它放在 index.pthml 中的 foreach(){} 中,然后它失败了。我为每篇文章都重写了数据库中的名称,我该怎么做?

最好不要使用配置或 .htaccess

先谢谢了。

4

1 回答 1

0

我总是做的是routes.ini在引导程序中添加执行:

protected function _initRoutes()
{
    $this->bootstrap('FrontController');
    $front = $this->getResource('FrontController');
    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini', 'production');
    $router = $front->getRouter();
    $router->addConfig($config, 'routes');
}

然后在routes.ini

[production]

routes.content.route = "/s/:permalink"
routes.content.defaults.controller = "content"
routes.content.defaults.action = "show"
routes.content.reqs.permalink = "[a-z0-9-]+"

因此,现在当有人访问http://mydomain.com/s/some-nice-permalink路由时,会转到ContentController ShowAction()方法,该方法将永久链接作为参数并在数据库中找到它。

当然,您还必须编写在数据库中创建唯一永久链接的方法。

于 2012-11-20T12:11:03.010 回答