在Mediawiki中如何生成网站地图Sitemap

对于新版本的Mediawiki,这里是指Mediawiki 1.7 以后的版本,提供了generateSitemap.php生成sitemap文件,可不必再使用扩展,不过这个文件不能直接通过浏览器访问,必须通过命令行访问,对于虚拟主机的用户是一个弊端。

每次调用generateSitemap.php,生成全部sitemap。一般我们通过定时任务(Linux下是cron)调用,定时生成。

generateSitemap.php命令示例

php /wiki/maintenance/generateSitemap.php –fspath /uedsc.com/sitemap/ –urlpath http://uedsc.com/sitemap/ –compress yes –server http://uedsc.com

 

命令解释

  • –fspath是存放sitemap文件的目录
  • –urlpath是指向–fspath目录的URL
  • –compress是是否压缩为gzip文件
  • –server是网站的域名
  • 详细命令行参数见官方说明

执行后,生成1个索引xml和一组sitemap xml。每个namespace至少生成1个sitemap xml,url超过限制则生成另一个xml,缺省限制是1个xml是50000。可根据需要向搜索引擎提交索引xml或若干sitemap xml。

如只生成部分namespace的sitemap,可在wiki/LocalSettings.php中设置:

$wgSitemapNamespaces[0]=0;
$wgSitemapNamespaces[1]=14;

 

0是主namespace,条目一般都在这里;14是分类的namespace。

生成的xml文件名很长,如想修改文件名规则,可修改/wiki/maintenance/generateSitemap.php的150行(索引xml)和352行(sitemap xml)。

如mediawiki已设置短URL,则sitemap中就是短URL。