动态网站的站点地图 - 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.php
和 Deal
),但所有小写的方法名称(sitemap()
而不是 Sitemap()
)。您可以看到我在上面链接的 in the Controller docs 的示例。我不确定这是否重要,只是指出来。
我有一个使用 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 文件。假设您的代码有效,您应该能够在
http://your-site/Sitemap/sitemap.xml
旁注:AFAIK Codeigniter 约定适用于大写的控制器文件和 class 名称(Deal.php
和 Deal
),但所有小写的方法名称(sitemap()
而不是 Sitemap()
)。您可以看到我在上面链接的 in the Controller docs 的示例。我不确定这是否重要,只是指出来。