我有一个cakephp网站,我在webroot文件夹中找到了sitemap.php。 我想将.htaccess文件中的url重写为sitemap.xml 但正常的PHP技术不起作用。 我尝试使用以下内容。
RewriteRule ^sitemap\.xml$ xmlsitemap.php [L]
RewriteRule ^sitemap$ sitemap.php [L]
但它在cakephp中不起作用。 知道怎么做吗?任何建议将不胜感激。
答案 0 :(得分:0)
应该在webroot目录中加载的唯一文件应该是index.php。您的应用程序应该从该点处理路由。要自定义路由,请查看Config文件夹中的routes.php文件。
查看路由文档。 http://book.cakephp.org/2.0/en/development/routing.html
对于蛋糕,您希望尽可能使用默认的自动路线。 例如: / my_widgets / create将映射到MyWdigetsController和动作create()
我建议移动sitemap.php中的任何功能,并将其移动到现有的控制器操作中。您还可以使用cake的parseExtensions功能为您提供正确的标题并为您加载正确的文件。
获取/sitemap.xml以加载xml站点地图的示例。
在你的routes.php中
Router::connect(
'/sitemap.xml',
array('controller' => 'pages', 'action' => 'sitemap', 'ext'=>'xml')
);
Router::parseExtensions('xml');
在PagesController中创建一个名为sitemap的动作。将任何代码生成您的站点地图数据放在该操作中。
在Views / Pages目录中,创建一个名为xml的文件夹,并放置一个名为sitemap.ctp的文件
在该文件中放置xml的输出。
如果将调试设置为高于0,我之前遇到了问题,所以如果看不到任何输出,请尝试将调试级别设置为0
答案 1 :(得分:0)
RewriteCond %{REQUEST_URI} ^/sitemap.xml
RewriteRule ^sitemap\.php$ - [L]