sitemap本来早就想弄了,但是由于比较忙,所以一直没有去弄,像百度一般都有主动推送,但是像一些比较小的搜索引擎就不支持主动推送了,360,搜狗,神马,以及新的今日头条,都不支持主动推送,所以今天就做了下sitemap。提供给大家参考一下。
sitemap索引文件格式:
<?xml version="1.0" encoding="utf-8" ?> <sitemapindex> <sitemap> <loc>数据xml地址1</loc> <lastmod>对应的最后修改时间</lastmod> </sitemap> <sitemap> <loc>数据xml地址2</loc> <lastmod>对应的最后修改时间</lastmod> </sitemap> </sitemapindex>下面是sitemap文件格式:
<?xml version="1.0" encoding="utf-8"?> <!-- XML文件需以utf-8编码--> <urlset> <!--必填标签--> <url> <!--必填标签,这是具体某一个链接的定义入口,每一条数据都要用<url>和</url>包含在里面,这是必须的 --> <loc>http://www.32e.top/1.html</loc> <!--必填,URL链接地址,长度不得超过256字节--> <lastmod>2014-12-14</lastmod> <!--可以不提交该标签,用来指定该链接的最后更新时间--> <changefreq>daily</changefreq> <!--可以不提交该标签,用这个标签告诉此链接可能会出现的更新频率 --> <priority>0.8</priority> <!--可以不提交该标签,用来指定此链接相对于其他链接的优先权比值,此值定于0.0-1.0之间--> </url> <url> <loc>http://www.32e.top/2.html</loc> <lastmod>2019-11-28</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> </urlset>上文是百度要求的sitemap格式,其他搜索引擎不知道是否通用。具体还待测试,如果不通用直接修改对应节点名称就好了。
下面附加一个php生成xml格式文件的函数(此函数基于CI):
//xml数据 public function baidu_xml(){ //所有机构新闻 $school_news_all = $this->32e->baidu_xml(); $urls = array(); foreach ($school_news_all as $key => $value) { $urls[] = array( 'loc' => base_url('campus/'.$value->school_add_id.'.html'), 'changefreq' => 'daily', 'priority' => '0.8' ); } $this->create_xml($urls); } //XML生成器 public function create_xml($urls,$attribute=array()){ // 创建一个XML文档并设置XML版本和编码。。 $dom=new DomDocument('1.0', 'utf-8'); // 创建根节点 $urlset = $dom->createElement('urlset'); $dom->appendchild($urlset); foreach ($urls as $data) { $item = $dom->createElement('url'); $urlset->appendchild($item); if (is_array($data)) { foreach ($data as $key => $val) { // 创建元素 $$key = $dom->createElement($key); $item->appendchild($$key); // 创建元素值 $text = $dom->createTextNode($val); $$key->appendchild($text); if (isset($attribute[$key])) { // 如果此字段存在相关属性需要设置 foreach ($attribute[$key] as $akey => $row) { // 创建属性节点 $$akey = $dom->createAttribute($akey); $$key->appendchild($$akey); // 创建属性值节点 $aval = $dom->createTextNode($row); $$akey->appendChild($aval); } } } } } header('Content-type: text/xml'); echo $dom->saveXML(); }再啰嗦一下,sitemap索引文件主要是解决大站点数据量太大一个文件无法容纳的问题。就是索引文件中包含所有的分布式xml文件。先到这里吧忙。。。
除特别注明外,本站所有文章均为博文家原创,转载请注明出处来自https://www.32e.top/seo/seoarticle/article-120.html
暂无评论