FriendsOfFlarum 出品 - Sitemap(站点地图)

此扩展程序为你的论坛添加站点地图。
它默认包含讨论和用户等条目,并且足够智能,可以根据已安装的扩展有条件地添加更多条目。目前这适用于 flarum/tags 和 fof/pages。其他扩展可以轻松注入自己的资源信息,请查看下方的"扩展"部分。
模式
站点地图有两种使用模式。
运行时模式
启用扩展后,站点地图会自动可用并实时生成。它包含所有访客有权访问的用户、讨论、标签和页面。
适用于小型论坛,通常为共享主机环境,讨论、用户、标签和页面总计少于 10,000 项。这不是硬性限制,但随着项目数量增加,性能会下降。
缓存多文件模式
对于较大的论坛,你可以设置一个定时任务来生成站点地图索引和压缩的站点地图文件。更改设置后会自动生成第一份站点地图,但后续更新需要手动触发或通过调度器触发(见下文)。
可以随时通过以下命令手动触发重建:
php flarum fof:sitemap:build
最适合从 10,000 项开始的较大论坛。
风险性能改进
此设置面向大型企业客户。
可选的"启用风险性能改进"选项会修改讨论和用户的 SQL 查询,限制返回的列数。通过移除这些列,可以显著减少数据库响应的大小,但可能会破坏扩展添加的自定义可见性范围或 slug 驱动。
此设置仅在你拥有数百万条讨论或用户时才会带来明显的改进。除非定时任务运行时间超过一小时或 SQL 连接因数据量过大而饱和,否则我们不建议启用它。
调度
考虑设置 Flarum 调度器,这样就不需要像上面建议的那样设置定时任务了。更多信息请阅读这里
调度器的频率可以通过扩展设置页面自定义。
安装
此扩展需要 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 赞助。
链接