2013-02-17 2 views
1

Я попытался построить RewriteRule в своем .htaccess, чтобы получить более симпатичный URL-адрес для отображения форума потоков с использованием Zend Framework. Target URL является:

/forum/display/thread/i/1 

Что я хочу:

/forum/display/thread/1 

С Zend Framework строит GET Variabels из URL (в данном случае, начинающегося после /thread/) мой оригинальный URL дает мне GET переменную 'i' = 1, и второй URL-код не дает мне вообще никаких переменных GET.

То, что я хочу, это либо способ, чтобы получить /1 в GET переменной уважающему, что может быть больше подходит (например, /p/2 номер страницы) или способ переписать URL с помощью mod_rewrite так что $_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); 
} 

код не проверяется, пожалуйста, напишите возможные неточности, если они :)

больше появляться
+0

мне нужно, чтобы изменить свой ответ немного для тестирования. его в настоящее время: 'частная статическая функция _setupRouter (Zend_Controller_Front $ к) {путь = новый Zend_Controller_Router_Route_Regex ('?/Форум/дисплей т /(.+ )', массив ('модуль' => 'Форум' $, 'controller' => 'display', 'action' => 'thread'), array ('i' => 1) ); $ fc-> getRouter-> addRoute (маршрут routeName $); } ' теперь я получаю следующее сообщение об ошибке: – Dero

+0

' Не удается собрать. Обратный маршрут не указан. # 0 /library/Zend/Controller/Router/Rewrite.php(470): Zend_Controller_Router_Route_Regex-> собрать (массив, ложь, истина) # 1 /library/ViewRenderer.php(131): Zend_Controller_Router_Rewrite-> собрать (массив) ' sry для плохого форматирования. Я не могу заставить его отображать код в блоке propper – Dero

+0

Да, забыл 4-й параметр. Я обновил свой код :) –

Смежные вопросы