neos/redirecthandler

使用 Flow 框架处理 HTTP 重定向的基本 API

资助包维护!
shop.neos.io/neosfunding

安装量: 657 691

依赖关系: 6

建议者: 0

安全性: 0

星标: 4

关注者: 4

分支: 15

开放问题: 13

类型:neos-package

6.0.1 2024-07-26 18:28 UTC

README

Latest Stable Version License Travis Build Status

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 来代替 ü,您需要调整源路径验证正则表达式以允许 %