fof/sitemap

生成站点地图

资助包维护!
网站

安装次数: 35,750

依赖者: 2

建议者: 6

安全: 0

星星: 14

关注者: 5

分支: 16

开放性问题: 3

类型:flarum-extension

2.2.1 2023-11-12 22:14 UTC

README

MIT license Latest Stable Version Total Downloads OpenCollective

此扩展仅为您的论坛添加站点地图。

它使用默认条目,如讨论和用户,但足够智能,可以根据扩展的可用性条件性地添加更多条目。这目前适用于 flarum/tags 和 fof/pages。其他扩展可以轻松注入自己的资源信息,请参阅下面。

模式

使用站点地图有两种模式。

运行时模式

启用扩展后,站点地图将自动可用并实时生成。它包含所有用户、讨论、标签和页面,访客都可以访问。

适用于小型论坛,很可能在共享主机环境中,讨论、用户、标签和页面的总和不到 10,000 项。这不是一个硬性限制,但随着项目数量的增加,性能将会下降。

缓存多文件模式

对于大型论坛,您可以设置一个 cron 作业来生成站点地图索引和压缩的站点地图文件。设置更改后,将自动生成第一个站点地图,但后续更新必须手动或通过调度程序(见下文)触发。

可以使用以下命令手动触发重建:

php flarum fof:sitemap:build

适用于大型论坛,从 10,000 项开始。

风险性能改进

此设置旨在用于大型企业客户。

可选的“启用风险性能改进”选项修改了讨论和用户 SQL 查询以限制返回的列数。通过删除这些列,它显着减少了数据库响应的大小,但可能会破坏扩展添加的自定义可见性作用域或 slug 驱动程序。

只有当您有数百万个讨论或用户时,此设置才会带来明显的改进。我们建议除非 CRON 作业运行时间超过一小时或 SQL 连接被数据量饱和,否则不要启用它。

调度

请考虑设置 Flarum 调度程序,这样就不需要设置上面建议的 cron 作业。有关更多信息,请参阅这里

调度程序的频率设置可以通过扩展设置页面进行自定义。

安装

此扩展需要 PHP 8.0 或更高版本。

使用 composer 手动安装

composer require fof/sitemap

更新

composer update fof/sitemap
php flarum migrate
php flarum cache:clear

Nginx 问题

如果您正在使用 nginx 并通过访问 /sitemap.xml 导致 nginx 404 页面,则可以将以下规则添加到您的配置文件中,在现有的 location 规则下方

location = /sitemap.xml {
    try_files $uri $uri/ /index.php?$query_string;
}

此规则确保 Flarum 在没有具有该名称的文件时响应用户对 /sitemap.xml 的请求。

扩展

注册新资源

为了注册自己的资源,创建一个实现 FoF\Sitemap\Resources\Resource 的类。请确保实现所有抽象方法,并检查其他实现示例。之后,注册您的

return [
    new \FoF\Sitemap\Extend\RegisterResource(YourResource::class),
];

就这样。

删除资源

以非常类似的方式,您也可以从站点地图中删除资源

return [
    (new \FoF\Sitemap\Extend\RemoveResource(\FoF\Sitemap\Resources\Tag::class)),
];

注册静态 URL

您的论坛中的一些页面可能不受默认资源覆盖。要将这些 URL 添加到站点地图中,有一个名为 StaticUrls 的虚拟资源。您可以使用 RegisterStaticUrl 扩展器添加自己的 URL。扩展器以路由名称作为参数,该参数将使用 Flarum\Http\UrlGenerator 类解析为 URL。

return [
    (new \FoF\Sitemap\Extend\RegisterStaticUrl('reviews.index')),
];

强制缓存模式

如果您希望强制使用缓存模式,例如在复杂的托管环境中,可以通过调用扩展器来实现。

return [
    (new \FoF\Sitemap\Extend\ForceCached()),
]

已委托

此扩展程序的初始版本由profesionalreview.com赞助。

链接