帝国cms非插件版sitemap地图 php加伪静态搞定
2020-09-09技术笔记
帝国cms非插件版sitemap地图 php加伪静态搞定
把下面的php文件保存为sitemap.php 放到根目录.然后添加伪静态规则
rewrite ^/sitemap.xml /sitemap.php; rewrite ^/sitemap-([0-9]+).xml /sitemap.php?classid=$1;
然后在百度站长后台添加http://www.1004619.com/sitemap.xml 就可以每天推送更新的内容链接了!!
- <?php
- require('e/class/connect.php');
- require('e/class/db_sql.php');
- require('e/data/dbcache/class.php');
- $link=db_connect();
- $empire=new mysqlquery();
- //------- 插件参数设置开始 -----
- //只显示栏目最新几条信息,0为全部显示
- $shownum=2000;
- //------- 插件参数设置结束 -----
- header("Content-type: application/xml");
- //去除HTML标记
- //取得网站地址
- $siteurl=$public_r['newsurl'];
- if(!stristr($public_r['newsurl'],'://'))
- {
- $siteurl=eReturnDomain().$public_r['newsurl'];
- }
- $sitedomain=substr($siteurl,0,-1);//网站域名
- $classid=(int)$_GET['classid'];
- if(empty($classid))//栏目导航
- {
- ?>
- <?='<?xml version="1.0" encoding="UTF-8"?>'?>
- <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
- <?php
- $sql=$empire->query("SELECT classid FROM {$dbtbpre}enewsclass WHERE islast=1");
- while($r=$empire->fetch($sql))
- {
- $infor=$empire->fetch1("SELECT newstime FROM {$dbtbpre}ecms_".$class_r[$r[classid]][tbname]." WHERE classid='$r[classid]' ORDER BY newstime DESC LIMIT 1");
- ?>
- <sitemap>
- <loc><?=$siteurl?>sitemap-<?=$r[classid]?>.xml</loc>
- <lastmod><?=date('Y-m-d',$infor[newstime])?></lastmod>
- </sitemap>
- <?php
- }
- ?>
- </sitemapindex>
- <?php
- }
- else//信息列表
- {
- if(!$class_r[$classid]['tbname'])
- {
- exit();
- }
- $limit=$shownum?' order by newstime desc limit '.$shownum:'';
- ?>
- <?='<?xml version="1.0" encoding="UTF-8"?>'?>
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
- <?php
- $sql=$empire->query("SELECT id,classid,isurl,title,titleurl,smalltext,newstime FROM {$dbtbpre}ecms_".$class_r[$classid][tbname]." WHERE classid='$classid'".$limit);
- while($r=$empire->fetch($sql))
- {
- if($r['isurl'])
- {
- continue;
- }
- $titleurl=sys_ReturnBqTitleLink($r);
- $titleurl=str_replace('&','&',$titleurl);
- if(!stristr($titleurl,'://'))
- {
- if($public_r['newsurl']=='/')
- {
- $titleurl=$sitedomain.$titleurl;
- }
- else
- {
- $titleurl=str_replace($public_r['newsurl'],$siteurl,$titleurl);
- }
- }
- ?>
- <url>
- <loc><?=$titleurl?></loc>
- <lastmod><?=date('Y-m-d',$r[newstime])?></lastmod>
- <changefreq>daily</changefreq>
- <priority>0.8</priority>
- </url>
- <?php
- }
- ?>
- </urlset>
- <?php
- }
- db_close();
- $empire=null;
- ?>
很赞哦! ()