我想从.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 ();