摆脱路由增强器插件中的混乱

问题描述 投票:0回答:1

如何摆脱基于pi的扩展中的cHash-Parameter?手册说:

“需求部分准确地指定应该将哪种参数作为正则表达式添加到该路由。这样,它可配置为仅允许整数值,例如分页。如果要求太松散,则为URL签名参数(”cHash“ )被添加到URL的末尾,无法删除。“

但严格是多么严格?我的配置:

Lexikon:
  type: Plugin
  limitToPages: [2140]
  routePath: '/eintrag/{eintrag}/{buchstabe}'
  namespace: 'tx_mcflexikon_pi1'
  requirements:
    buchstabe: '[A-Z]{1}'
    eintrag: '[0-9]{1,4}'
  default:
    buchstabe: 'A'
    eintrag: '0'

我不知道如何定义除这些之外的更严格的规则:1个字母和1到4个数字。

谢谢!

typo3 typo3-9.x
1个回答
0
投票

好几个小时后我发现了一个解决方法。似乎部分要求中的定义对cHash-Handling并不重要。更重要的是方面部分。如果我为每个参数定义了一个方面,那么cHash就会消失:

Lexikon:
  type: Plugin
  limitToPages: [2140]
  routePath: '/eintrag/{buchstabe}/{eintrag}'
  namespace: 'tx_mcflexikon_pi1'
  requirements:
    buchstabe: '[A-Z]{1}'
    eintrag: '[0-9]{1,4}'
  default:
    buchstabe: 'A'
    eintrag: '0'
  aspects:
    eintrag:
      type: PersistedAliasMapper
      tableName: 'tx_mcflexikon_daten'
      routeFieldName: 'slug'
    buchstabe:
      type: StaticValueMapper
      map:
        A: 'A'
        B: 'B'
        C: 'C'
        D: 'D'
        E: 'E'
        G: 'G'
        H: 'H'
        I: 'I'
        J: 'J'
        K: 'K'
        L: 'L'
        M: 'M'
        N: 'N'
        O: 'O'
        P: 'P'
        Q: 'Q'
        R: 'R'
        S: 'S'
        T: 'T'
        U: 'U'
        V: 'V'
        W: 'W'
        X: 'X'
        Y: 'Y'
        Z: 'Z'

定义每个字母有点烦人,但我发现没有其他可能性; StaticRangeMapper和PersistedAliasMapper在此上下文中不起作用。

也许有可能定义一个自定义映射器,它不会欺骗系统。另一方面:这显然会导致安全问题。

© www.soinside.com 2019 - 2024. All rights reserved.