Php 重定向到动态站点地图还是通过YIC生成?
我想为yii站点渲染动态站点地图。 但我无法在url管理器中执行此操作:Php 重定向到动态站点地图还是通过YIC生成?,php,.htaccess,yii,sitemap,Php,.htaccess,Yii,Sitemap,我想为yii站点渲染动态站点地图。 但我无法在url管理器中执行此操作: 'urlManager'=>array( 'showScriptName'=>false, 'rules'=>array( 'sitemap.xml/*'=>'/site/sitemapxml', array('site/sitemapxml', 'pattern'=>'sit
'urlManager'=>array(
'showScriptName'=>false,
'rules'=>array(
'sitemap.xml/*'=>'/site/sitemapxml',
array('site/sitemapxml', 'pattern'=>'sitemap.xml', 'urlSuffix'=>''),
...
因此,我转向.htaccess
,添加了如下重定向:
Redirect 301 /app3/sitemap.xml http://tarex.ru/app3/index.php/?r=site/sitemapxml
另一个选项是通过生成sitemap.xml文件。时间/追索效率会更高吗?首先,您的规则不正确,请改用此规则:
'rules' => array(
'/sitemap.xml' => '/site/sitemapxml',
...
)
现在,关于你的问题,其实没什么大不了的,你更喜欢哪种方式,每种方式都有自己的优缺点
控制器操作选项
优点:
- 易于实施和维护。这只是另一个操作,您不会忘记如何在系统中生成站点地图
- 因此,动态内容的性能较低
public function filters()
{
return array(
array(
'COutputCache + sitemap',
'duration' => 24 * 60 * 60 // cache for 24 hours
),
);
}
不要忘记在配置文件中配置缓存组件。用这个。如果您不熟悉此主题,请阅读Yii的最终指南
这是一个非常灵活的解决方案,您可以扩展此示例,使其在需要时从配置文件中读取缓存持续时间
YIC期权
优点:
- xml只是一个静态文件,由web服务器提供更高效的服务
缺点:
- 需要定期更新并控制此过程
- 需要使用框架之外的其他东西,这也需要一些监控
解决方案:
使用cron作业生成sitemap.xml
虽然最终的决定在很大程度上取决于项目的具体细节,但一般来说,我会坚持第一种方法。对于高度动态的站点,站点地图可能不是一个好主意。请参阅链接。谢谢您的回答。特别是兑现部分。你能提供一些关于请求兑现的更多信息吗?你能详细说明你的问题吗?缓存是一个模糊的话题。你到底在问什么?我指的是一些到兑现示例的链接,从哪里开始,因为我以前没有做过。我从官方文档开始,然后我喜欢本书中如何在示例上解释缓存。