手册:generateSitemap.php

This page is a translated version of the page Manual:GenerateSitemap.php and the translation is 91% complete.
Outdated translations are marked like this.

详情

generateSitemap.php文件是一个维护脚本,用于为一个安装好的MediaWiki生成sitemap。Sitemap是一个用于让搜索引擎爬虫(如Google爬虫)更有效率地索引一个网站的文件(前提是爬虫支持sitemap协议)。

本脚本会默认生成一个sitemap索引文件,以及一个包含所有有内容的命名空间的通过gzip压缩后的sitemap。在#Options节查看可以被传递给本脚本的选项。

此外,你可能会需要创建一个定时任务来自动更新sitemap。

如果你还需要关于MediaWiki的维护脚本(maintenance scripts)的通用介绍,你可以在这里查看更多:手册:维护脚本

选项

--help

查看可以用于generateSitemap.php的选项。

--fspath=<path>

生成的sitemap在文件系统上的路径。示例:sitemap/。注意,这个文件夹必须是对访客可见的。

--identifier=<identifier>

维基的站点标识符,默认为$wgDBname

--urlpath=<prefix>

指向--fspath相對於域名的URL,如:
/sitemap/
如果指定了本选项,则可以在被sitemap索引的文件中生成前缀。这个选项是必要的,因为一些搜索引擎(如Google)需要sitemap提供的URL使用绝对路径。如果使用了本选项,你也应该同时指定--server。这两者的值通常是相似的,但将它们分开处理可以让脚本在一些不寻常的设置下正常工作。
在MediaWiki 1.32.0之前此参数应当包含协议和主机名。 但从MediaWiki 1.32.0开始,此参数的内容会附加在--server参数后,所以既不应当包含协议,也不应该包含主机名。此破坏性更改未在RELEASE-NOTES文件中公告。

--server=<server>

在URL中使用的协议和主机名,如:
https://en.wikipedia.org
有时设置这个是很有必要的,因为在命令行脚本中检测服务器名字不一定会成功,那会导致生成的xml文件会把"localhost"或"my.servername"作为主机名。
如果设置了$wgCanonicalServer 的值,则该选项的值会在所有的sitemap文件中被覆盖,除了sitemap索引文件。

--compress=[yes|no]

用于决定是否对sitemap文件进行压缩。默认为yes

--skip-redirects

如果命令中附带了本选项,则重定向页面不会被生成到sitemap中。 我们推荐使用本选项,因为Google反感过多的重定向。 虽然推荐使用,但我们默认仍然是"不"略过生成重定向页面链接。

示例

为Google站长工具创建网站地图:

mkdir sitemap

然后:

MediaWiki版本:
1.40
php maintenance/run.php generateSitemap --memory-limit=50M --fspath=/path/to/examplecom/sitemap/ --identifier=example.com --urlpath=/sitemap/ --server=https://www.example.com --compress=yes --skip-redirects
MediaWiki版本:
1.32 – 1.39
php maintenance/generateSitemap.php --memory-limit=50M --fspath=/path/to/examplecom/sitemap/ --identifier=example.com --urlpath=/sitemap/ --server=https://www.example.com --compress=yes --skip-redirects
MediaWiki版本:
1.31
php maintenance/generateSitemap.php --memory-limit=50M --fspath=/path/to/examplecom/sitemap/ --identifier=example.com --urlpath=https://www.example.com/sitemap --server=https://www.example.com --compress=yes --skip-redirects

这将在/path/to/examplecom/sitemap/sitemap-index-example.com.org.xml创建一个sitemap索引,其指向每个命名空间对应的压缩XML文件,例如主空间则为/path/to/examplecom/sitemap/sitemap-example.com-NS_0-0.xml.gz。

这不意味着你的站点地图可以被自动找到! 你将需要把sitemap索引的链接(也就是https://www.example.com/sitemap/sitemap-index-example.com.org.xml)提交到网页抓取站点(例如Yandex或Google)。

或者,在站点根目录添加到sitemap索引的软链接,以让所有爬虫可以找到,例如:

ln -s /sitemap/sitemap-index-example.com.org.xml sitemap.xml

直接创建顶级sitemap.xml的链接也可行,如果你选择自行在站点上运行Wayback Machinesitemap提交程序

非拉丁文字域名需要使用国际化域名编码

相关配置参数

MediaWiki版本:
1.13
  • $wgSitemapNamespaces : 需要生成Google sitemap的命名空间的数组,如果要为所有命名空间生成,则设置为false。默认值是false
MediaWiki版本:
1.19