maxzhang / sitemap
生成网站地图
Requires
- php: 7.*
- flarum/core: ^1.3.1
Suggests
- flarum/tags: List tags in the sitemap
- fof/pages: List pages in the sitemap
Replaces
This package is auto-updated.
Last update: 2024-09-13 08:43:07 UTC
README
此扩展仅向您的论坛添加网站地图。
它使用默认条目,如讨论和用户,但足够智能,可以根据扩展的可用性条件添加更多条目。这目前适用于 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)), ];
强制缓存模式
如果您希望强制使用缓存模式,例如在复杂的托管环境中,可以通过调用extender来完成
return [ (new \FoF\Sitemap\Extend\ForceCached()), ]
委托
本扩展的初始版本由 profesionalreview.com 赞助。