我有以下.htaccess规则:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^sitemap_(.*)\.xml$ /xml/sitemap/$1 #[L]
RewriteRule ^.*$ /index.php [NC,L]
不幸的是,我无法使用内部Zend Framework路由来处理站点地图,但上述规则不起作用。
站点地图网址如下所示:
/sitemap_index.xml
/sitemap_pages.xml
/sitemap_news.xml
在我设置R = 301重定向或注释掉最后一条规则的情况下,所需的重写工作正常。这两个都不是选择。有人可以帮忙吗?
答案 0 :(得分:2)
不能说.htaccess。 zend路由器可能更容易做到。把它放在引导程序中:
public function _initRouter() {
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route_Regex(
'sitemap_(.*)\.xml',
array(
'controller' => 'xml',
'action' => 'sitemap'
),
array(
1 => 'sitemap'
)
);
$router->addRoute('sitemap', $route);
}