重定向至“使用Apache.htaccess路由”诊断树


Redirect to route with Apache .htaccess

我想从.htaccess重定向到一个特定的路由(我使用Zend Framework,但我想每个框架都是一样的)。

这是我的.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/$
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$
RewriteRule ^(.*)$ /snapshot/%1? [NC,L]

这不起作用。注意:snapshot文件夹不存在。

但如果我把最后一行替换为:

RewriteRule ^(.*)$ http://my-site.com/snapshot/%1? [NC,L]

它有效。。。第二种方法有效,但重定向url是可见的,我不希望这样。

我能做些什么来使第一个例子起作用?

我有一个解决方案,但它不需要mod_rewrite。你必须稍微编辑一下你的index.php。在$application->bootstrap ();之后和$application->run ();之前添加此代码段。

$application->bootstrap ();
if (preg_match ('~_escaped_fragment_=(.*)~', $_SERVER ['QUERY_STRING'], $match))
{
    $frontcontroller = $application->getBootstrap()->FrontController;
    $request = new Zend_Controller_Request_Http('http://your.site.com/controller/'.$match[1]);
    $frontcontroller->setRequest($request);
}
$application->run ();