gpt4 book ai didi

typo3 - 如何使用错误处理配置从 Extbase 返回正确的 404 错误

转载 作者:行者123 更新时间:2023-12-04 01:12:53 25 4
gpt4 key购买 nike

TYPO3 版本:9.5.4

目标:我想从具有正确状态代码等的 Extbase Controller 返回 404 错误,该 Controller 使用我在站点配置中设置的 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]
);

结果:

变体 A(站点配置中无错误处理):状态代码为 404 > 正常的异常

变体 B(显示页面内容的错误处理):页面呈现状态为 200,显示所述页面的正常内容(页眉、页脚等)> 不正常

问题:如何让 Extbase 做与普通页面相同的事情?

最佳答案

如果您只是在操作中返回此响应,则页面呈现正在进行中并且不会中断。将响应传递给 立即响应异常 让 ErrorHandler 处理它。

$response = GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction(
$GLOBALS['TYPO3_REQUEST'],
'Your error message',
['code' => PageAccessFailureReasons::PAGE_NOT_FOUND]
);
throw new ImmediateResponseException($response);

关于typo3 - 如何使用错误处理配置从 Extbase 返回正确的 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55007086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com