手册:generateSitemap.php
MediaWiki文件: generateSitemap.php | |
---|---|
位置: | maintenance/ |
源代码: | master • 1.42.3 • 1.41.4 • 1.39.10 |
类: | GenerateSitemap |
详情
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中使用的协议和主机名,如:
- 有时设置这个是很有必要的,因为在命令行脚本中检测服务器名字不一定会成功,那会导致生成的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 Machine的sitemap提交程序。
非拉丁文字域名需要使用国际化域名编码。
相关配置参数
MediaWiki版本: | ≥ 1.13 |
$wgSitemapNamespaces
: 需要生成Google sitemap的命名空间的数组,如果要为所有命名空间生成,则设置为false。默认值是false
。
MediaWiki版本: | ≥ 1.19 |
$wgSitemapNamespacesPriorities
: 为sitemap设置命名空间的优先级。这里应该是一个 命名空间 到 优先级 的 map,默认为false
。