Php 正在更改$服务器[';请求#URI';]

Php 正在更改$服务器[';请求#URI';],php,.htaccess,zend-framework,mod-rewrite,Php,.htaccess,Zend Framework,Mod Rewrite,我试图在我的.htaccess中构建一个重写规则,以获得一个更漂亮的URL,用于使用Zend Framework显示线程论坛。 目标URL为: /forum/display/thread/i/1 我想要的是: /forum/display/thread/1 由于Zend Framework从URL构建GET变量(在本例中,从/thread/之后开始),因此我的原始URL为我提供了一个GET变量'i'=1,而第二个URL根本不提供GET变量 我想要的,要么是一种方法,将/1放入一个get变量,

我试图在我的
.htaccess
中构建一个重写规则,以获得一个更漂亮的URL,用于使用Zend Framework显示线程论坛。 目标URL为:

/forum/display/thread/i/1
我想要的是:

/forum/display/thread/1
由于Zend Framework从URL构建GET变量(在本例中,从
/thread/
之后开始),因此我的原始URL为我提供了一个GET变量
'i'=1
,而第二个URL根本不提供GET变量

我想要的,要么是一种方法,将
/1
放入一个get变量,可能会有更多的变量(例如,页码
/p/2
),要么是一种使用
mod_rewrite
重写URL的方法,以便
$\u服务器['REQUEST\u URI']
设置为
/forum/display/thread/I/code>

有人知道怎么做吗?

在引导程序中:

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);  
}

代码未测试,如果出现错误,请发布错误:)

我需要修改您的答案以进行测试。现在是:
private static function\u setupRouter(Zend\u Controller\u Front$fc){$route=new Zend\u Controller\u Router\u route\u Regex('forum/display/t/(.+?)),array('module'=>'forum','Controller'=>'display','action'=>'thread'),array('i'=>1));$fc->getRouter->addRoute('routeName'$route);}
现在我遇到了以下错误:
无法汇编。没有指定反向路由。#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块中显示代码