TYPO3 11中RequestMiddlewares.php配置失效问题求助
TYPO3 11中自定义中间件配置调整方案
问题分析
你的自定义中间件配置在TYPO3 9/10正常运行,但在11中失效;注释before中的typo3/cms-frontend/tsfe后虽能运行,却导致所有Extbase扩展(如News插件)抛出#1316104317错误,核心原因是:
- TYPO3 11中
TypoScriptFrontendInitialization(对应标识typo3/cms-frontend/tsfe)负责初始化TSFE对象及加载Extbase控制器配置,若自定义中间件在它之前运行且未正确传递请求,会导致后续流程无法获取controllerConfiguration。 - 保留
before中的tsfe会干扰中间件依赖链,导致配置失效。
调整后的配置
修改EXTDIR/Configuration/RequestMiddlewares.php为以下内容:
<?php return [ 'frontend' => [ 'varioous/rest/mail-chimp-middleware' => [ 'target' => Varioous\Rest\MailChimpMiddleware::class, 'after' => [ 'typo3/cms-frontend/site', ], 'before' => [ 'typo3/cms-frontend/eid', ], ], ], ];
关键调整说明
- 保留
before中的eid:确保REST请求在EID处理前被拦截,优先响应自定义逻辑。 - 移除
tsfe并添加after依赖:让中间件在站点解析完成后运行,既保证REST请求的处理时机,又不会阻断TSFE初始化流程——若当前请求不是REST请求,中间件会继续传递请求到后续流程,TSFE正常初始化后Extbase的控制器配置就能正确加载。 - 中间件内部逻辑补充:在
MailChimpMiddleware的handle方法中,需判断当前请求是否属于你的REST接口路径,若是则直接返回响应;否则调用$handler->handle($request)将请求传递给下一个中间件,避免阻断正常前端请求流程。
内容的提问来源于stack exchange,提问作者bugblatterbeast
相关产品推荐
相关产品推荐

