neos / redirecthandler
使用 Flow 框架处理 HTTP 重定向的基本 API
6.0.1
2024-07-26 18:28 UTC
Requires
- php: >=8.2
- ext-json: *
- league/csv: ^9.2
- neos/flow: ^9.0 || dev-master
- neos/redirecthandler-storageimplementation: ~3.0 || dev-main
Suggests
- neos/redirecthandler-databasestorage: Supports storing redirects in the database
This package is auto-updated.
Last update: 2024-08-26 18:49:41 UTC
README
Neos.RedirectHandler 包允许在 Flow 中创建将被返回给客户端的重定向。
它可以用来将更改的 URL 重定向到新的目标,而无需为每个重定向调整 web 服务器配置。
安装
要使用重定向包,您必须安装此包
composer require "neos/redirecthandler"
并且还需要一个存储包。可以使用 composer 安装用于在数据库中存储重定向的默认包:
composer require "neos/redirecthandler-databasestorage"
使用 Neos CMS 与此包配合使用
查看 Neos 的适配器包 adapter package for Neos。
从 2.x 升级
默认情况下已禁用点击计数器。
您可以在设置中再次启用它
Neos:
RedirectHandler:
features:
hitCounter: true
默认的重定向状态代码已从 307 更改为 301,因为大多数人希望使用永久重定向而不是临时重定向。
您可以在设置中启用旧行为
Neos:
RedirectHandler:
statusCode:
redirect: 307
配置
注意:当使用此功能处理持久资源的重定向时,您必须调整默认的重写规则!默认情况下,对 _Resources/…
的任何缺失都会停止请求,并从 web 服务器直接返回 404。
# Make sure that not existing resources don't execute Flow
RewriteRule ^_Resources/.* - [L]
为了使重定向处理程序能够看到请求,必须删除此规则。通常,性能影响可以忽略不计,因为 Flow 只会针对曾经存在并且有人仍然持有链接的资源。
当重定向未触发而是其他控制器操作时应该做什么
像这样覆盖路由顺序
Neos: Flow: http: middlewares: redirect: position: 'before routing'
使用此配置时要小心,因为这会使重定向组件首先执行,然后再解析任何其他路由,例如可能会阻止登录或类似操作。
可能的问题
- 当尝试重定向包含元音符号(或其他特殊字符)的 URL 时,请注意您可能需要输入它们经过 URL 编码。但为了能够输入
%C3%BC
来代替ü
,您需要调整源路径验证正则表达式以允许%
。