帝国实用小技巧:php方式的sitemap文件伪静态为xml
php方式的sitemap文件伪静态为xml,懒人必备,一次设置上传就可,不必经常生成sitemap的xml
具体设置是:
1、php写成sitemap格式,下面是我的一个例子,最重要的是
2、伪静态设置里加上
php方式的sitemap文件伪静态为xml,懒人必备,一次设置上传就可,不必经常生成sitemap的xml
具体设置是:
1、php写成sitemap格式,下面是我的一个例子,最重要的是
这两句,应该是设置文件为xml属性,不添加好像搜索引擎不认;
- header("Cache-Control: no-store, no-cache, must-revalidate");
- header('Content-type: text/xml');
2、伪静态设置里加上
最后就开始写sitemap.php这个文件的代码呢,代码如下:
- rewrite ^/sitemap/sitemap_([0-9]+).xml$ /sitemap/sitemap.php?page=$1;
- rewrite ^/sitemap/sitemap.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.***.com/"; //改你的域名
- $per_page = 5000;
- $xml='<?xml version="1.0" encoding="UTF-8" ?>'."\r\n";
- if(isset($_GET['page'])){
- $xml.='<urlset
- 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.='<url>'."\r\n";
- $xml.=' <loc>'.$surl.'</loc>'."\r\n";
- $xml.=' <lastmod>'.date('c').'</lastmod>'."\r\n";
- $xml.=' <changefreq>always</changefreq>'."\r\n";
- $xml.=' <priority>1.00</priority>'."\r\n";
- $xml.='</url>'."\r\n";
- $queryc="select classid from {$dbtbpre}enewsclass";
- $sqlc=$empire->query($queryc);
- while($c=$empire->fetch($sqlc)){
- $xml.='<url>'."\r\n";
- $xml.=' <loc>'.$surl.'list_'.$c[classid].'.html</loc>'."\r\n";//栏目页链接方式根据自己具体设置
- $xml.=' <lastmod>'.date('c').'</lastmod>'."\r\n";
- $xml.=' <changefreq>always</changefreq>'."\r\n";
- $xml.=' <priority>0.95</priority>'."\r\n";
- $xml.='</url>'."\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.='<url>'."\r\n";
- $xml.=' <loc>'.$surl.'detail_'.$r[id].'.html</loc>'."\r\n";//内容页链接方式根据自己具体设置
- $xml.=' <lastmod>'.date('c',$r['newstime']).'</lastmod>'."\r\n";
- $xml.=' <changefreq>daily</changefreq>'."\r\n";
- $xml.=' <priority>0.80</priority>'."\r\n";
- $xml.='</url>'."\r\n";
- }
- }
- $xml.='</urlset>';
- }else{
- $totalqueryt="select count(*) as total from {$dbtbpre}ecms_news";
- $num=$empire->gettotal($totalqueryt);
- $allpage = ceil($num/$per_page);
- $xml.='<sitemapindex>'."\r\n";
- for($i=0;$i<=$allpage;$i++){
- $xml.='<sitemap>'."\r\n";
- $xml.=' <loc>'.$surl.'sitemap/sitemap_'.$i.'.xml</loc>';
- $xml.="\r\n".'</sitemap>'."\r\n";
- }
- $xml.='</sitemapindex>';
- }
- header('Content-type: text/xml');
- ob_clean();
- echo $xml;
- exit;
- ?>