首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TYPO3 9.5 Extbase如何将带有无效对象的showAction调用重定向到自定义页面(而不是404!)

TYPO3 9.5 Extbase是一种流行的开源内容管理系统,它基于PHP开发,用于构建和管理网站。Extbase是TYPO3的一个扩展框架,它提供了一种面向对象的开发方法,使开发人员能够更轻松地创建和扩展TYPO3的功能。

在TYPO3 9.5 Extbase中,如果在showAction中调用了一个带有无效对象的页面,可以通过以下步骤将其重定向到自定义页面而不是显示404错误页面:

  1. 首先,在你的Extbase扩展中创建一个自定义的错误处理器类。可以在你的扩展的Classes文件夹下创建一个名为CustomErrorHandling.php的文件,并在其中定义一个类,继承自\TYPO3\CMS\Core\Error\ErrorHandler类。
代码语言:txt
复制
namespace Vendor\Extension\Error;

use TYPO3\CMS\Core\Error\ErrorHandler;

class CustomErrorHandling extends ErrorHandler
{
    public function handlePageNotFound()
    {
        // 在这里编写重定向逻辑
        // 例如,可以使用TYPO3的Redirect功能将请求重定向到自定义页面
    }
}
  1. 接下来,在你的扩展的Configuration文件夹下创建一个名为ext_localconf.php的文件,并在其中注册自定义错误处理器类。可以使用以下代码:
代码语言:txt
复制
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][\TYPO3\CMS\Core\Error\ErrorHandler::class] = [
    'className' => \Vendor\Extension\Error\CustomErrorHandling::class,
];
  1. 然后,在自定义错误处理器类的handlePageNotFound方法中,编写重定向逻辑。你可以使用TYPO3的Redirect功能将请求重定向到自定义页面。以下是一个示例代码:
代码语言:txt
复制
public function handlePageNotFound()
{
    $uriBuilder = $this->objectManager->get(\TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::class);
    $uri = $uriBuilder->reset()
        ->setTargetPageUid(123) // 替换为你的自定义页面的页面UID
        ->build();

    $this->redirectToUri($uri);
}

在上面的示例代码中,我们使用了TYPO3的UriBuilder来构建自定义页面的URL,并使用redirectToUri方法将请求重定向到该URL。

  1. 最后,确保你的扩展已经安装并激活。然后,当showAction调用一个带有无效对象的页面时,它将被重定向到你指定的自定义页面。

请注意,上述代码中的示例仅用于演示目的,你需要根据自己的实际需求进行适当的修改。

推荐的腾讯云相关产品:腾讯云服务器(https://cloud.tencent.com/product/cvm)和腾讯云对象存储(https://cloud.tencent.com/product/cos)可用于托管和存储TYPO3网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券