使用Codeigniter生成站点地图

bmr*_*nal 19 sitemap frameworks codeigniter

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

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

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

roe*_*oev 55

你可以使用我的代码:

控制器/ 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

意见/ 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>
Run Code Online (Sandbox Code Playgroud)

添加到config/routes.php的行

$route['seo/sitemap\.xml'] = "seo/sitemap";
Run Code Online (Sandbox Code Playgroud)

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

  • 为什么这部分:'<?xml version ="1.0"encoding ="UTF-8"?>'in <?=?> echo? (2认同)

小智 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>
Run Code Online (Sandbox Code Playgroud)


Tar*_*rek 6

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

Sitemap: http://www.yoursite.com/seo/sitemap
Run Code Online (Sandbox Code Playgroud)