2013-02-17 123 views
1

我试图在我的.htaccess中构建一个RewriteRule,以获得更漂亮的URL以显示使用Zend Framework的线程论坛。 目标网址是:

/forum/display/thread/i/1 

我想要什么:

/forum/display/thread/1 

因为Zend框架构建从URL GET Variabels(在这种情况下/thread/后开始),我原来的URL给我一个GET变量'i' = 1,而第二个URL根本没有GET GET血管。

我想要什么,或者是一种方式,以获得/1成GET变量尊重人,可能有更多的未来(如/p/2的页码)或方式使用mod_rewrite重写URL,这样$_SERVER['REQUEST_URI']设置为/forum/display/thread/i/1

任何人有一个想法如何做到这一点?

回答

0

在你的引导:

protected function _initRouter() 
{ 
    $route = new Zend_Controller_Router_Route_Regex( 
     '/forum/display/thread/(.+?)', 
     array('controller' => 'forum', 'action' => 'display'), 
     array(1 => 'thread'), 
     '/forum/display/thread/%d' 
    ); 
    $front->getRouter()->addRoute('routeName', $route); 
} 

的代码没有进行测试,请他们是否occure :)

+0

我需要修改你的答案有点测试张贴任何错误回报。其现在: '私有静态函数_setupRouter(在Zend_Controller_Front $ FC){$ 路线=新Zend_Controller_Router_Route_Regex( '?论坛/显示/吨/(.+)', 阵列( '模块'=> '论坛', 'controller'=>'display','action'=>'thread'), array('i'=> 1) ); $ fc-> getRouter-> addRoute('routeName'$ route); }' 现在我收到以下错误: – Dero 2013-02-17 12:40:57

+0

'无法组装。未指定反向路线。 (Array,false,true) #0 /library/Zend/Controller/Router/Rewrite.php(470):Zend_Controller_Router_Route_Regex-> assemble(Array,false,true)#1 /library/ViewRenderer.php(131):Zend_Controller_Router_Rewrite-> assemble(Array) ' sry的格式不正确。我无法让它在propper块中显示代码 – Dero 2013-02-17 12:41:53

+0

是的,忘记了第四个参数。我已经更新了我的代码:) – 2013-02-17 12:45:12

相关问题