原来的站点地图,因为启用了伪静态,所以直接伪静态指向生成站点地图的PHP文件,HTML地图无所谓,是正常的,而XML地图,则一直不能显示。从代码里查看,是正常的,后来用http状态查询发现,xml的返回状态是
Content-Type: text/xml
而启用伪静态的sitemap.xml返回的状态还是根html的代码返回状态是一样的
Content-Type: text/html; charset=utf-8
尝试了很多办法解决,发现用PHP返回header值也还是不行,必须静态生成,需要在站点静态生成的程序里开启对站点地图的生成功能(原有功能检查网站静态生成方式:动态、真静态、伪静态,只有在真静态的状态才可以生成文件)
$config['static'] != 2 && msgbox($language['page']['msg'][0],'html_make.php');
改成
$config['static'] != 2 && $_GET['event']!= 'sitemap' && msgbox($language['page']['msg'][0],'html_make.php');
静态生成的话,即使开启了伪静态,也需要每次更新后手动生成下站点地图
文章来源:站点地图静态生成功能
得出结论,除了HTML等文件,其他类型的文件,如果考虑到蜘蛛抓取什么的原因的话,最好是不要伪静态!!!因为伪静态指向的其实也还是网页!不是说你访问的时候文件后缀改为xml就返回xml类型的数据了!