【发布时间】:2012-06-25 08:45:43
【问题描述】:
我需要在 Codeigniter 应用程序中生成站点地图。我发现了一些库,但它们都已经过时并且有错误。
我真的需要一个单独的库吗?
我想知道在Codeigniter中生成站点地图的最佳方式。
【问题讨论】:
标签: codeigniter frameworks sitemap
我需要在 Codeigniter 应用程序中生成站点地图。我发现了一些库,但它们都已经过时并且有错误。
我真的需要一个单独的库吗?
我想知道在Codeigniter中生成站点地图的最佳方式。
【问题讨论】:
标签: codeigniter frameworks sitemap
你可以使用我的代码:
控制器/seo.php
Class Seo extends CI_Controller {
function sitemap()
{
$data = "";//select urls from DB to Array
header("Content-Type: text/xml;charset=iso-8859-1");
$this->load->view("sitemap",$data);
}
}
views/sitemap.php
<?= '<?xml version="1.0" encoding="UTF-8" ?>' ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc><?= base_url();?></loc>
<priority>1.0</priority>
</url>
<!-- My code is looking quite different, but the principle is similar -->
<?php foreach($data as $url) { ?>
<url>
<loc><?= base_url().$url ?></loc>
<priority>0.5</priority>
</url>
<?php } ?>
</urlset>
在 config/routes.php 中添加一行
$route['seo/sitemap\.xml'] = "seo/sitemap";
对不起,如果代码中有错误,我是专门为你做的。 如果有错误,你可以通过理解原理很容易地修复它们。
【讨论】:
必须设置标题:
<?php header('Content-type: text/xml'); ?>
<?= '<?xml version="1.0" encoding="UTF-8" ?>' ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc><?= base_url();?></loc>
<priority>1.0</priority>
</url>
<!-- My code is looking quite different, but the principle is similar -->
<?php foreach($data as $url) { ?>
<url>
<loc><?= base_url().$url ?></loc>
<priority>0.5</priority>
</url>
<?php } ?>
</urlset>
【讨论】:
强烈建议将站点地图的链接添加到 robots.txt,如下所示:
Sitemap: http://www.yoursite.com/seo/sitemap
【讨论】:
我编写了一个 CodeIgniter 模型,它使您能够从站点地图控制器调用函数并在您完成站点地图的输入后输出 XML。
随意查看并重用 CodeIgniter 模型:
【讨论】: