【问题标题】:Sitemap generation with Codeigniter使用 Codeigniter 生成站点地图
【发布时间】:2012-06-25 08:45:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: codeigniter frameworks sitemap


    【解决方案1】:

    你可以使用我的代码:

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

    对不起,如果代码中有错误,我是专门为你做的。 如果有错误,你可以通过理解原理很容易地修复它们。

    【讨论】:

    • 如果您有很多页面/文章,那么多个站点地图呢?
    • 为什么这部分是:'' in = ?> echo ?
    • 非常感谢。它可以工作,但是在将其提交给网站管理员帐户时会产生一个错误,显示“404 错误”,因为链接似乎工作正常。这是链接检查,让我知道infinitietech.com/sitemap.xml
    • 这对于指定的路径超过 1000 个的站点是不正确的。
    • 你给了我一个线索。非常感谢,我的朋友!
    【解决方案2】:

    必须设置标题:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        随意查看并重用 CodeIgniter 模型:

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

        【讨论】:

          猜你喜欢
          • 2017-11-29
          • 1970-01-01
          • 2015-08-11
          • 1970-01-01
          • 2015-01-31
          • 2010-09-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多