帝国cms建立php格式的sitemap网站地图
php方式的sitemap文件伪静态为xml,懒人必备,一次设置上传就可,不必经常生成sitemap的xml
具体设置是:
1、php写成sitemap格式,下面是我的一个例子,最重要的是
header("Cache-Control: no-store, no-cache, must-revalidate");
header('Content-type: text/xml');
这两句,应该是设置文件为xml属性,不添加好像搜索引擎不认;
2、伪静态设置里加上
rewrite ^/sitemap/sitemap_([0-9]+).xml$/sitemap/sitemap.php?page=$1;
rewrite ^/sitemap/sitemap.xml$/sitemap/sitemap.php;
sitemap.xml就是个索引形sitemap,里面有按5000条信息分一个sitemap_1.xml,sitemap_2.xml……
测试下就可以了
虽然现在索引形sitemap在百度没用
说明:建立sitemap.php,贴入以下代码即可。 <?php
header("Cache-Control: no-store, no-cache, must-revalidate");
require("../e/class/connect.php");
require("../e/class/db_sql.php");
require("../e/data/dbcache/class.php");
$link=db_connect();
$empire=new mysqlquery();
$surl="http://www.shuijuxia.com/"; //改你的域名
//$m = new Memcache();
//$m->connect('127.0.0.1', 11211);
$per_page = 5000;
$xml=''."\r\n";
if(isset($_GET['page'])){
$xml.='
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'."\r\n";
if(intval($_GET['page'])==0){
$xml.='
$xml.='
$xml.='
$xml.='
$xml.='
$xml.=''."\r\n";
$queryc="select classid from {$dbtbpre}enewsclass";
$sqlc=$empire->query($queryc);
while($c=$empire->fetch($sqlc)){
$xml.='
$xml.='
$xml.='
$xml.='
$xml.='
$xml.=''."\r\n";
}
}else{
$start=(intval($_GET['page'])-1)*$per_page;
$query="select id,newstime from {$dbtbpre}ecms_news order by newstime desc limit $start,$per_page";
$sql=$empire->query($query);;
while($r=$empire->fetch($sql)){
$xml.='
$xml.='
$xml.='
$xml.='
$xml.='
$xml.=''."\r\n";
}
}
$xml.='';
}else{
$totalqueryt="select count(*) as total from {$dbtbpre}ecms_news";
$num=$empire->gettotal($totalqueryt);
$allpage = ceil($num/$per_page);
$xml.='
for($i=0;$i<=$allpage;$i++){
$xml.='
$xml.='
$xml.="\r\n".''."\r\n";
}
$xml.='';
}
header('Content-type: text/xml');
ob_clean();
echo $xml;
exit;
?>