由 FriendsOfFlarum 提供的站点地图

此扩展简单地为你的论坛添加一个站点地图。
它使用讨论和用户等默认条目,但也能智能地根据已安装的扩展,有条件地添加更多条目。目前这适用于 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 {
rewrite ^ /index.php?$query_string last;
add_header Cache-Control "max-age=0";
}
location ^~ /sitemap- {
rewrite ^ /index.php?$query_string last;
add_header Cache-Control "max-age=0";
}
此规则确保当没有该名称的文件时,Flarum 将响应 /sitemap.xml 的请求。
扩展
请查阅 GitHub 上的 README 中的最新文档。
委托开发
此扩展的初始版本由 profesionalreview.com 赞助。