动态网站的站点地图 - codeigniter

Sitemap for dynamic website - codeigniter

我有一个使用 Codeigniter 3 设计的动态网站,我作为新手正在处理站点地图部分。

我从 evert/sitemap-php 找到了 library sitemap-php,但我做不到 运行。

从现在开始,这就是我所做的,我将 Sitemap.php 文件放入我的库文件夹中

控制器:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Deals extends CI_Controller {

public function __construct(){

    parent::__construct();
    $this->load->helper('url', 'form', 'security');
    $this->load->library('form_validation');
    $this->load->library('session');
    $this->load->library('email'); 
    $this->load->model('deal_model');
    $this->load->helper(array('cookie','custom','text'));
}

    public function Sitemap(){ 

      $this->load->library('Sitemap'); 
      $sitemap = new Sitemap('https://www.mywebsite.com');
      $sitemap->setPath('/public_html/Sitemap/'); // I created a folder Sitemap into my public folder
      $sitemap->setFilename('sitemap');
      $sitemap->addItem('/', '1.0', 'daily', 'Today');
      $sitemap->createSitemapIndex('https://www.mywebsite.com/sitemap/', 'Today');
}

然后当我转到 https://www.mywebsite.com/sitemap/ 时,出现 错误 404。

你能指导我解决我的问题吗?

谢谢

该库的文档描述它生成一个静态 XML 文件。您显示的代码将执行此操作 - 但您的代码在库中,您还没有 运行。您需要 运行 它,然后它会按照您在 /public_html/Sitemap/ 中指定的方式生成一个 XML 文件。根据您的描述,您正在寻找 XML,然后再做任何事情来生成它,但它(还)不存在。

从您更新的代码中,您现在拥有 生成 静态 XML 的代码可用作控制器方法。根据 the standard Codeigniter routing conventions,您创建的方法可在以下位置访问:

http://your-site/deals/Sitemap

(也许您也 set up some routes 所以它也可以通过其他 URI 访问。)

访问 URL 一次,在 /public_html/Sitemap/sitemap.xml 生成静态 XML 文件。假设您的代码有效,您应该能够在

浏览 XML
http://your-site/Sitemap/sitemap.xml

旁注:AFAIK Codeigniter 约定适用于大写的控制器文件和 class 名称(Deal.phpDeal),但所有小写的方法名称(sitemap()而不是 Sitemap())。您可以看到我在上面链接的 in the Controller docs 的示例。我不确定这是否重要,只是指出来。