Flo*_*hor 4 typo3 extbase typo3-9.x
TYPO3版本:9.5.4
目标:我想从 Extbase 控制器返回 404 错误,并使用正确的状态代码等,该控制器使用我在站点配置中设置的 404 错误处理配置。
检查 404 处理是否有效:我在站点配置中设置了 404 错误处理。这应该显示特定页面的内容。如果我访问 www.my-domain.local/asdfasdf,我将收到 404 状态代码,其中包含我指定的页面内容
我在 Extbase 中尝试了什么:
# In the action
return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction(
$GLOBALS['TYPO3_REQUEST'],
'The requested page does not exist',
['code' => PageAccessFailureReasons::PAGE_NOT_FOUND]
);
Run Code Online (Sandbox Code Playgroud)
结果:
变体 A(站点配置中无错误处理):异常,状态代码 404 > 正常
变体 B(显示页面内容的错误处理):页面呈现状态为 200,显示所述页面的正常内容(页眉、页脚等)> 不正常
问题:如何让 Extbase 执行与普通页面相同的操作?
如果您只是在操作中返回此响应,则页面渲染正在进行中并且不会被中断。将响应传递给ImmediateResponseException以让 ErrorHandler 处理它。
$response = GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction(
$GLOBALS['TYPO3_REQUEST'],
'Your error message',
['code' => PageAccessFailureReasons::PAGE_NOT_FOUND]
);
throw new ImmediateResponseException($response);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1038 次 |
| 最近记录: |