2013-02-17 65 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

相關問題