使用Codeigniter生成站点地图

时间:2012-06-25 08:45:44

标签: codeigniter frameworks sitemap

我需要在 Codeigniter 应用程序中生成站点地图。我发现了一些库,但它们都已经过时并且有bug。

我真的需要一个单独的库吗?

我想知道在 Codeigniter 中生成站点地图的最佳方式。

4 个答案:

答案 0 :(得分:54)

您可以使用我的代码:

控制器/ 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);
    }
}

视图/ 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";

对不起,如果代码中有一些错误,我特别为你做了。 如果有错误,您可以通过理解原则轻松修复它们。

答案 1 :(得分:13)

必须设置标题:

<?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>

答案 2 :(得分:4)

强烈建议将站点地图的链接添加到robots.txt,如下所示:

Sitemap: http://www.yoursite.com/seo/sitemap

答案 3 :(得分:1)

我编写了一个CodeIgniter模型,它使您能够从站点地图控制器调用函数,并在您完成站点地图的整个过程后吐出XML。

随意查看并重用CodeIgniter模型:

https://github.com/alphabase/CodeIgniter-Sitemap-Generator