Typo3 如何使用错误处理配置从Extbase返回正确的404错误
TYPO3版本:9.5.4 目标:我想从Extbase控制器返回一个404错误,该控制器具有正确的状态代码等。该控制器使用我在站点配置中设置的404错误处理配置 检查404处理是否有效:我在站点配置中设置了404错误处理。这应该显示特定页面的内容。如果我访问www.my-domain.local/asdfasdf,我将获得一个404状态码,其中包含我指定的页面内容 我在Extbase中尝试了什么:Typo3 如何使用错误处理配置从Extbase返回正确的404错误,typo3,extbase,typo3-9.x,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::makeIn
# In the action
return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction(
$GLOBALS['TYPO3_REQUEST'],
'The requested page does not exist',
['code' => PageAccessFailureReasons::PAGE_NOT_FOUND]
);
结果:
# 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>OK的异常
变量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);
你太棒了,这正是它应该做的。非常感谢你!