TYPO3 web2pdf扩展如何配置RouteEnhancer实现指定短URL重写
TYPO3 web2pdf扩展RouteEnhancer正确配置方案
问题原因
你之前使用的Plugin类型路由增强器仅能处理routePath中显式声明的参数,Extbase插件运行必需的controller、action参数不会被自动隐式赋值,因此会继续以查询参数形式残留在URL中。之前尝试Extbase类型路由不生效,几乎都是因为extension、plugin两个必填配置项大小写/值写错导致的。
可用配置
直接在站点配置的YAML中添加如下配置,即可实现https://example.com/subpage/pdf/的目标URL效果:
routeEnhancers: Web2pdf: type: Extbase # 与扩展键对应,使用驼峰格式 extension: Web2pdf # 与插件名对应,匹配参数名tx_web2pdf_pi1的后缀部分 plugin: Pi1 routes: - routePath: '/pdf/' # 绑定固定的控制器+动作组合,无需通过URL传参 _controller: 'Pdf::generatePdfLink' # 固定传参直接写默认值,路由匹配时会自动注入,不需要占用路径段 defaults: argument: 'printPage' # 限制参数匹配规则,避免路由冲突 requirements: argument: 'printPage'
注意事项
- 配置完成后必须进入TYPO3后台「维护」模块,清空全部系统缓存,路由规则属于核心缓存项,仅清空前端缓存不会加载新配置。
- 不要在
routePath中添加{argument}这类动态占位符,你的场景下所有参数都是固定值,不需要动态路径段,加了占位符反而会生成带参数的多余路径。 - 上述配置生效后,TYPO3会自动识别所有参数均为固定静态值,不会再生成多余的
cHash参数。 - 如果配置后仍不生效,优先检查
extension和plugin的大小写:Web2pdf首字母大写、Pi1的P为大写、i为小写、后缀是数字1,大小写不匹配会导致Extbase路由完全无法识别对应插件。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

