如何在基于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位数字。
谢谢!
答案 0 :(得分: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在这种情况下不起作用。
也许可以定义一个自定义的映射器,该映射器不执行任何操作以欺骗系统。另一方面:这显然会导致安全问题。