nglasl/silverstripe-misdirection

此模块允许基于可自定义映射进行简单和正则表达式链接重定向,既可以挂钩到页面未找到,也可以替换默认的自动URL处理。

安装: 73,293

依赖项: 2

建议者: 0

安全: 0

星标: 4

关注者: 3

分支: 18

开放问题: 9

类型:silverstripe-vendormodule

3.1.1 2019-02-11 23:09 UTC

README

当前版本是 3.1.1

此模块允许基于可自定义映射进行简单和正则表达式链接重定向,既可以挂钩到页面未找到,也可以替换默认的自动URL处理。

要求

  • SilverStripe 3.1 → 4.0

此模块不要求CMS。

入门

概述

链接映射

这些允许简单和正则表达式链接重定向,可用于旧页面重定向、虚荣链接(更多内容见下文)或基于特定URL模式的重定向。

link-mapping

具有最高优先级(其次是最大特异性)的链接映射将被使用,并替换默认的自动URL处理。此默认行为可能被配置为仅挂钩到页面未找到

nglasl\misdirection\MisdirectionRequestFilter:
  enforce_misdirection: false

当有多个匹配时,将使用首先创建的链接映射。此默认行为可能被配置为优先考虑最近创建的链接映射

nglasl\misdirection\LinkMapping:
  priority: 'DESC'

虚荣链接和回退

vanity-URLs-and-fallbacks

虚荣链接

虽然可以手动创建这些(如上所示),但内容作者可以直接从页面创建链接映射。然而,应注意的是,这些以 2 的低优先级实例化,因此具有更高优先级的其他链接映射将具有优先权。

回退

当用户偶然遇到页面未找到时,可能会触发一个指定的规则以防止显示此内容。管理员可以通过网站配置来配置全局回退,但是特定页面设置将具有优先权。

  • 选择 设置
  • 选择 页面

发生了什么?

链接映射是在服务器端通过请求过滤器处理的,以防止低效和有问题的映射。

当您想查看给定URL背后的确切操作时,模型管理员提供了一个强大的测试界面!

testing

一旦达到最大请求数,服务器将响应页面未找到。以下为默认配置

nglasl\misdirection\MisdirectionRequestFilter:
  maximum_requests: 9

testing-maximum-requests

绕过Misdirection

可以通过在URL后附加 ?misdirected=1 完全绕过请求过滤器。这对于调试来说很棒,但由于明显的原因,这不适用于测试界面。

默认自动URL处理

这可以被完全替换,在这种情况下,旧URL将不再根据页面版本历史记录解析。

nglasl\misdirection\MisdirectionRequestFilter:
  replace_default: true

当页面移动时,将自动创建和维护适当的链接映射。这允许完全控制系统中保留哪些旧URL。

维护者联系方式

Nathan Glasl, nathan@symbiote.com.au