Jump to content

扩展:AutoSitemap(站点地图自动化)

From mediawiki.org
This page is a translated version of the page Extension:AutoSitemap and the translation is 100% complete.
MediaWiki扩展手册
AutoSitemap
发行状态: 稳定版
实现 MyWiki , 页面操作
描述 每当站内任一页面发生变化时,创建或更新站点地图文件(sitemap.xml)。
作者 Dolfinus, François Boutines-Vignard, Jehy, Thomas
最新版本 1.8.2 (2024-10-29)
MediaWiki 1.28+
数据库更改
$wgAutoSitemap
许可证 GNU General Public License 3.0 or later
下載
README
示例 已生成的站点地图

AutoSitemap 扩展会在每次页面创建、编辑或删除时自动生成一个 sitemap.xml 文件。 Sitemap 文件可以帮助搜索引擎更好地抓取你站点的页面。 该扩展基于 ManualSitemap 扩展。

原因

由于托管服务商的限制,我无法通过调度器(例如 cron)更新 sitemap,而且我也不想手动更新它。

因此,我修改了一个现有的扩展,让它在任何页面编辑、创建、删除、重命名、上传等事件发生时自动更新 sitemap。

注意

该扩展适用于小型 MediaWiki 实例(最多约 1 万页)。 如果你的实例超过 5 万页,建议使用 GenerateSitemap.php ,因为它支持:sitemap 索引文件、为每个命名空间生成独立文件、压缩 sitemap 文件、设计为通过调度器定期运行,而不是在每次页面修改后触发。

安裝

  • 下载文件,并将其放置在您extensions/文件夹中的AutoSitemap目录内。
  • 請新增下列代码到您的LocalSettings.php 文件的底部:
    wfLoadExtension( 'AutoSitemap' );
    
  • 让你的 wiki 页面产生任何变化,例如创建一个新页面或更新一个已有页面。
  • Sitemap 文件将会自动生成。
  • Yes 完成 – 請导航至您的wiki上的Special:Version,以验证此扩展已成功安装。

配置

有一些可选的参数,用于改变 sitemap 的生成方式。 可以在 LocalSettings.php 里设置它们。

文件名

可以通过以下设置为 sitemap 文件配置文件名:

$wgAutoSitemap["filename"] = "sitemap.xml"; //default value

设置根 URL

默认情况下,站点地图中的所有URL都使用$wgCanonicalServer(或$wgServer,如果没有设置)作为域前缀。 如果要将其设置为另一个,可以通过设置手动更改:

$wgAutoSitemap["server"] = "https://your-site.com";

从站点地图中排除页面类型

您可以将命名空间或确切的页面排除在站点地图之外:

$wgAutoSitemap["exclude_namespaces"] = [
    NS_TALK,
    NS_USER,   
    NS_USER_TALK,
    NS_PROJECT_TALK,
    NS_FILE_TALK,
    NS_MEDIAWIKI,   
    NS_MEDIAWIKI_TALK,
    NS_TEMPLATE,
    NS_TEMPLATE_TALK,
    NS_HELP,   
    NS_HELP_TALK,
    NS_CATEGORY_TALK
]; //default values

$wgAutoSitemap["exclude_pages"] = ['page title to exclude', 'other one'];

如果需要从站点地图中排除自定义命名空间,请在此处传递命名空间ID(整数)而不是名称常量。


设置页面更新频率

您可以手动指定搜索引擎检查所有地址的推荐频率:

$wgAutoSitemap["freq"] = "daily"; //default

可用值包括:

hourly
daily
weekly
monthly
yearly
adjust - for automatic determination of frequency based on page edits count

设置页面优先级

您可以手动指定某些页面或命名空间的优先级:

$wgAutoSitemap["priority"] = 0.7;

$wgAutoSitemap["priority"][NS_MAIN] = 1;
$wgAutoSitemap["priority"][NS_CATEGORY] = 0.8;

$wgAutoSitemap["priority"]['Main page'] = 1;
$wgAutoSitemap["priority"]['Other page'] = 0.8;

站点地图的速率限制重新创建

对于具有许多页面的wiki,生成站点地图可能会消耗大量资源,因此您可能不希望它过于频繁地发生。 使用此选项,您可以指定只有在站点地图至少存在一定秒数时才应重新创建站点地图。

$wgAutoSitemap["min_age"] = 3600; // 1 hour, default 0 (no rate-limit)

使用

安装扩展后空白页

请按照Manual:如何调试 的说明获取中断页面呈现过程的异常消息。 通常,这是由于将未定义的常量传递给$wgAutoSitemap["exclude_namespaces"]造成的。

权限

您的MediaWiki文件夹应允许进行写入操作(chmod +wchown apachechown nginx)。

Htaccess, Nginx

如果你想看到一个人类可读的站点地图,请在你的站点配置中允许sitemap.xsl文件的读取权限(.htaccess文件或其他文件)。

另请参见