silverstripe / externallinks
为 SilverStripe CMS 添加跟踪断开的外部链接
Requires
- php: ^8.1
- silverstripe/cms: ^5
Requires (Dev)
Suggests
- symbiote/silverstripe-queuedjobs: Provides a more efficient method of generating/updating the report
- 4.x-dev
- 3.x-dev
- 3.3.x-dev
- 3.3.0-beta1
- 3.2.x-dev
- 3.2.1
- 3.2.0
- 3.2.0-rc1
- 3.2.0-beta1
- 3.1.x-dev
- 3.1.2
- 3.1.1
- 3.1.0
- 3.1.0-rc1
- 3.1.0-beta1
- 3.0.x-dev
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-rc1
- 3.0.0-beta1
- 2.x-dev
- 2.4.x-dev
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.4.0-rc1
- 2.4.0-beta1
- 2.3.x-dev
- 2.3.0
- 2.3.0-rc1
- 2.3.0-beta2
- 2.3.0-beta1
- 2.2.x-dev
- 2.2.1
- 2.2.0
- 2.2.0-rc1
- 2.2.0-beta1
- 2.1.x-dev
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.x-dev
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 2.0.0-beta1
- 1.1.x-dev
- 1.1.1
- 1.1.0
- 1.0.x-dev
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-pulls/3/update-js-1725215694
- dev-master
This package is auto-updated.
Last update: 2024-09-19 14:16:26 UTC
README
简介
外部链接模块是一个任务和 ModelAdmin,用于跟踪和报告断开的外部链接。
维护者联系方式
- Damian Mooyman (@tractorcow) damian@silverstripe.com
功能
- 向断开链接报告添加外部链接
- 添加任务以跟踪外部断开链接
安装
composer require silverstripe/externallinks
报告
新增了一个名为“外部断开链接报告”的新报告。在查看此报告时,用户可以点击“创建新报告”按钮,这将触发一个ajax请求以启动报告运行。
在此初始ajax请求中,该模块将根据包含的模块执行以下一项操作:
- 如果已安装queuedjobs模块,将启动一个新队列任务。queuedjobs模块将随后管理任务的进度。
- 如果queuedjobs模块不存在,则控制器将回退到在后台运行buildtask。这不太稳定,因为在此过程中出现故障或错误将中止运行。
在两种情况下,后台任务将遍历系统中的每个页面,检查所有外部URL,并检查请求每个URL返回的状态码。如果URL返回的响应代码被认为是“断开”(定义为小于200或大于302),则将分配给该URL的 ss-broken
css 类,并在报告中添加一项。如果之前断开的链接已被纠正或修复,则删除此类。
在实际生成的报告中,用户可以点击任何断开链接项,在浏览器中查看链接,或在CMS中编辑包含该链接的页面。
报告运行时,当前状态将在报告详细信息页面上显示,包括状态。用户可以离开此页面,稍后再返回以查看此报告的持续状态。
在先前的报告完成之前,可能不会生成后续报告。
开发任务
运行以下任务 http://path.to.silverstripe/dev/tasks/CheckExternalLinksTask 以检查网站的外部断开链接。
队列任务
如果您已安装queuedjobs模块,您可以设置任务以定期运行。
白名单代码
如果您想忽略或允许某些HTTP代码,可以通过在mysite/_config
中的config.yml文件中设置ignore_codes
来实现。
SilverStripe\ExternalLinks\Tasks\CheckExternalLinksTask: ignore_codes: - 401 - 403 - 501
跟随301重定向
您可能想要跟随重定向的URL,例如从http重定向到https可能会给出一个错误的阳性结果,因为301的http代码将被返回,这将被归类为有效链接。
要允许跟随重定向,请在您的config.yml中设置以下配置:
# Follow 301 redirects SilverStripe\ExternalLinks\Tasks\CurlLinkChecker: follow_location: 1
绕过缓存
默认情况下,任务将尝试缓存任何结果。可以通过在config.yml中设置以下配置来绕过缓存:
# Bypass SS_Cache SilverStripe\ExternalLinks\Tasks\CurlLinkChecker:: bypass_cache: 1
头部信息
您可能需要设置在 CURL 请求中发送的头部信息(例如:user-agent),以避免网站拒绝请求,认为它是机器人。您可以在 config.yml 中使用以下配置来设置它们。
# Headers SilverStripe\ExternalLinks\Tasks\CurlLinkChecker: headers: - 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0' - 'accept-encoding: gzip, deflate, br' - 'referer: https://www.domain.com/' - 'sec-fetch-mode: navigate' ...