plan2net / sierrha
404 '找不到'和403 '禁止访问'错误处理器。404处理器在找不到页面时显示自定义内容,但不包括CSS或JS等资源。403处理器在未授权访问时重定向到登录URL。
Requires
- php: ^7.2 || ^8.1
- typo3/cms-backend: ^9.5 || ^10.4 || ^11.5
- typo3/cms-frontend: ^9.5 || ^10.4 || ^11.5
Requires (Dev)
- typo3/testing-framework: ^4.0 || ^6.0
Replaces
- typo3-ter/sierrha: 0.4.2
README
一组扩展TYPO3默认网站错误处理的错误处理器。
可用处理器
页面未找到(HTTP状态404)
显示来自页面或外部URL的内容。
如果资源不可用或内容为空,则显示标准TYPO3错误布局中的消息。
当请求的URL表示Web资源(例如CSS文件)时,仅发送一个小响应以节省带宽(“资源文件扩展名的正则表达式”,见扩展管理器配置)。
默认情况下要处理的文件扩展名
- css
- eot, ttf, woff, woff2
- gif, ico, jpg, jpeg, png, svg, webp
- js
- json
- xml
禁止访问(HTTP状态403)
如果不允许在没有会话的情况下访问页面,则重定向到登录URL。
如果用户已经登录,但没有权限访问(因为缺少组权限),则可以重定向到备用页面(“在缺少权限时显示页面内容”,见网站配置)。
在其他任何情况下,都会触发404“找不到”错误。TYPO3将调用配置的错误处理器。
缓存
错误页面缓存在TYPO3的页面缓存中。如果配置了TYPO3页面(而不是外部URL),则在页面内容更改时自动使缓存失效。
要求
- TYPO3 9 LTS, 10 LTS, 11 LTS, 12 LTS
- 404:包含人类可读的“页面未找到”消息的页面/URL
- 403:执行登录并将重定向到提供的URL的URL(例如扩展“felogin”)
- Web服务器必须能够通过配置的域名访问自身
安装
通过composer.json添加
"require": {
"plan2net/sierrha": "*"
}
在扩展管理器中安装并激活扩展。
扩展管理器配置
资源文件扩展名的正则表达式:
这是默认的正则表达式。
css|eot|gif|ico|jpe?g|js(?:on)|png|svg|ttf|webp|woff2?|xml
启用调试模式:
如果出现配置错误,则在调试模式下或如果HTTP请求来自$GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask']
中列出的IP时,将显示详细的错误。否则,错误将被传递给TYPO3处理。
网站配置
404 "找不到"
在“错误处理”选项卡上创建一个新的处理器。
HTTP错误状态码: "404" 错误处理方式: "PHP类"
保存配置。
错误处理器类目标(FQCN): "Plan2net\Sierrha\Error\StatusNotFoundHandler" 在找不到时显示页面内容: TYPO3页面或外部URL
403 "禁止访问"
在“错误处理”选项卡上创建一个新的处理器。
HTTP错误状态码: "403" 错误处理方式: "PHP类"
保存配置。
错误处理器类目标(完全限定类名): "Plan2net\Sierrha\Error\StatusForbiddenHandler" 登录页面: TYPO3 页面或外部 URL 在权限缺失时显示页面内容: TYPO3 页面或外部 URL 登录页面 URL 的返回参数: 登录页面 URL 的查询参数,不带开头的 ? 或 &
注意: 扩展 "felogin" 使用的登录页面参数是 return_url=###URL###
。
URL 标记
URL 返回参数支持标记替换。
变更日志
- 0.4.2 兼容 PHP 8.1 版本发布
- 0.4.1 防止在请求中找不到语言时抛出异常
- 0.4.0
- 错误页面被缓存在 TYPO3 的页面缓存中
- 设置为与 v11 LTS 兼容
- 0.3.8 将扩展密钥添加到 composer.json
- 0.3.7 防止 403 处理器陷入循环
- 0.3.6 防止 404 处理器陷入循环
- 0.3.5 不要两次获取错误页面
- 0.3.4 设置为与 v10 LTS 兼容
- 0.3.3
- 为缺失的错误内容添加回退
- 默认情况下,在配置错误的情况下不要抛出异常
- 0.3.2 将 eot、ttf 和 woff/woff2 添加到 Web 资源列表
- 0.3.0 显示 404 状态的错误页面;对于缺失的 Web 资源,只发送小的 404 响应
- 0.2.0 在当前登录权限缺失时显示错误页面
- 0.1.0 重定向到登录页面