首页
学习
活动
专区
工具
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网站。

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

相关·内容

Java Web常见框架寻找路由技巧

参数绑定:控制器将请求中参数(如查询参数、表单数据、JSON对象等)绑定到处理方法参数上。 业务逻辑调用:控制器调用服务层(Service Layer)组件来执行业务逻辑,如数据处理、计算等。...异常处理:控制器负责处理业务逻辑中可能抛出异常,并返回适当错误响应或重定向。 响应生成:控制器根据业务逻辑结果生成响应,这可能包括渲染视图、返回JSON数据、重定向其他页面等。...其定义Controller与传统Spring MVC有所不同,因为WebFlux是基于响应式编程模型。在WebFlux中,需要使用RouterFunction来路由请求对应处理方法。...例如下面的例子,自定义了一个注解@BuyerController: 然后定义了具体Controller以及业务逻辑: 但是通过RestfulToolkit并不能获取到对应路由定义: 该路由对应资源实际上是可以正常访问...例如根据资源类上注解(如 @Path)和其他配置信息,配置请求资源方法路由: 可以看到通过routingStage可以获取到当前jersey注册router: 0x02 其他 通过上面的几种方式

12010

通过 Laravel 创建一个 Vue 单页面应用(五)

上述路由是有效,所以我们需要我们组件渲染 error 组件或者将用户重定向一个专用404路由。...我们将在 resources/assets/js/app.js 中Vue 路由配置中添加一些新路由,这些路由提供一个专门404视图和一个可以将所有无法匹配路由重定向404路由万能路由: { path...*'); 如果你数入一个无效 URL 比如 /does-not-exist,你会看到像下面的一堆东西: Vue路由器触发了会将浏览器重定向 /404 通配符路由规则。...为了捕获在 create() 回调中失败请求信息,以及将用户请求重定向404路由,我们需要更新一下 UsersEdit : created() { api.find(this....$router.push({ name: '404' }); }); } 现在,如果您直接向 /users/2000/edit 这样 URI 发出请求,你应该会看到应用重定向404页面不是挂在

4.4K20

如何使用Selenium WebDriver查找错误链接?

当您在网站上遇到404 /页面未找到/无效超链接时,会想到什么想法?啊!当您遇到损坏超链接时,您会感到烦恼,这是为什么您应继续专注于消除Web产品(或网站)中损坏链接唯一原因。...如果您Web产品包含许多页面(或链接),导致404错误(或找不到页面),则搜索引擎(例如Google)上产品排名也将受到严重影响。删除无效链接是SEO(搜索引擎优化)活动组成部分之一。...链接可能由于服务器问题暂时断开,或者在后端配置不正确。 ? 除了导致404错误页面外,断开链接其他主要示例是格式错误URL,指向已移动或删除内容(例如,文档,pdf,图像等)链接。...链接到已移动或删除内容,如视频,文档等。如果内容被移动,则“内部链接”应重定向指定链接。 网站维护导致网站暂时停机,导致该网站暂时无法访问。...links = driver.find_elements(By.CSS_SELECTOR, "a") 由于我们希望元素是可迭代,因此我们使用find_elements方法(不是find_element

6.5K10

django 1.8 官方文档翻译:13-1-2 使用Django认证系统

在Django认证框架中只存在一种类型用户,因此诸如'superusers'或管理员'staff'用户只是具有特殊属性集user对象不是不同类型user对象。...注意,如果你提供一个值给redirect_field_name,你非常可能同时需要自定义登录模板,因为存储重定向路径模板上下文变量将使用redirect_field_name值作为它键,不是默认...例如,视图检查用户邮件属于特定地址(例如@example.com),若不是,则重定向登录页面。...如果提供了 raise_exception 参数,装饰器抛出PermissionDenied异常,使用 the 403 (HTTP Forbidden) 视图不是重定向登录页面。...如果通过POST调用带有用户提交凭证,它会尝试登入该用户。如果登入成功,该视图重定向next中指定URL。

4.6K20

处理死链一「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 这也是许多网站使用自定义404错误页面的原因。...通过良好自定义404 页面,可以包含对网站相应介绍、用户可能感兴趣内容链接或者网站内容导航链接、内容搜索功能等,能够有效地帮助访问者找到其欲寻找内容或相似的内容,提高用户在网站内浏览更多信息机会...对于已经存在信息由于路径改变导致访问不了时,应该在IIS 中定义404错误指向一个动态页面,在页面里面使用301 跳转到新地址,此时服务器返回301状态码。   2....当访问一个错误链接时,将调用404页面,但由于在IIS 里面设置不同将导致返回不同状态码:   1. 404指向是一个htm 文件,此时页面返回404状态码,这是正确。   ...避免在调用404 页面的时候返回302状态码,容易被搜索引擎认为是重定向作弊。   4. 检测方法,使用HttpWatch 查看返回代码。 死链这个最好找到根源 如何防范死链接?

58630

flask 教程_python flask快速入门与进阶

其中 if __name__ ==’__main__’: 确保服务器只会在该脚本被 Python 解释器直接执行时候才会运行,不是作为模块导入时候。...port自定义端口。 路由 现代Web框架使用路由技术来帮助用户记住应用程序URL。可以直接访问所需页面,而无需从主页导航。Flask中route()装饰器用于将URL绑定函数。...永久性重定向和暂时性重定向 flask是通过flask.redirect(location,code=302)这个函数来实现重定向,location是需要重定向url,应该配合之前讲在url_for...使用 延迟请求回调 方案可以在没有响应对象情况下设置一个 cookie 。 重定向和错误 你可以用 redirect() 函数把用户重定向其它地方。...(error): return render_template('page_not_found.html'), 404 注意 render_template() 调用之后 404

1.9K40

django 1.8 官方文档翻译: 3-1-3 Django 快捷函数

可选参数 context 添加到模板上下文中字典。默认是个空字典。如果字典中某个值是可调用,视图将在渲染模板之前调用它。...参数可以是: 一个模型:将调用模型get_absolute_url() 函数 一个视图,可以带有参数:将使用urlresolvers.reverse 来反向解析名称 一个绝对或相对URL,将原样作为重定向位置...通过传递一个对象;将调用get_absolute_url() 方法来获取重定向URL: from django.shortcuts import redirect def my_view(request...] 在一个给定模型管理器上调用get(),但是引发Http404 不是模型DoesNotExist 异常。...如果你有一个自定义管理器,它将很有用: get_object_or_404(Book.dahl_objects, title='Matilda') 你还可以使用关联 管理器: author = Author.objects.get

79920

改善用户体验404页面最佳实践

404-错误信息表明,网站上一个页面未能返回结果,不再存在。在搜索结果失败后遇到404错误网站信息用户通常会被重定向其他网站页面。...其中一些功能还被设计为将用户重定向网站其他功能页面。标准错误信息。当用户试图访问一个错误或破损网站页面时,一个标准404错误信息可能会返回一个 "找不到页面 "结果。...替代网站链接一旦用户登陆了404错误网站页面,他们可能会从错误页面重定向另一个网页或销售漏斗。心存感激网站访问者通常会感谢这些网站链接,因为他们寻求回到网站上一个功能齐全页面。...包括幽默感图片当网站访客看到一个有趣或诙谐404错误网站信息时,可能会感到更有趣不是恼怒。一个很好例子是亚马逊、宜家和娱乐巨头HBO等网站404错误信息。...然而,与带有普通 "错误404 "信息网站相比,自定义404错误信息创造了更积极用户体验。这些自定义404信息将一个原本令人讨厌结果变成了用户新奇体验。

1.2K20

如何处理WordPress网站404状态死链

但是,如果出现问题,您网络浏览器通常会显示一条带有HTTP状态代码消息,以指示确切问题。...这实际上是所需响应,您可以创建自己自定义404页面来帮助将访问者引导正确位置。 一样404报错不同名称 由于不同浏览器以不同方式显示错误消息,因此对于此错误,您可能会看到不同消息。...Google浏览器404报错通知页面 404报错通知页面还可能是个性化,因为许多站点实际上会创建一个自定义404错误页面不是显示上面的消息之一。...默认情况下,某些WordPress主题还包括自定义404页面。因此,您实际上可能根本看不到404错误消息,因为许多网站将改用有趣或富有创意404页面。...解决此问题最佳方法是将尝试访问旧链接访客自动重定向新链接。这对于用户体验或者SEO优化,都积极

4.7K10

改善用户体验404页面最佳实践

404-错误信息表明,网站上一个页面未能返回结果,不再存在。在搜索结果失败后遇到404错误网站信息用户通常会被重定向其他网站页面。...其中一些功能还被设计为将用户重定向网站其他功能页面。标准错误信息。当用户试图访问一个错误或破损网站页面时,一个标准404错误信息可能会返回一个 "找不到页面 "结果。...替代网站链接 一旦用户登陆了404错误网站页面,他们可能会从错误页面重定向另一个网页或销售漏斗。心存感激网站访问者通常会感谢这些网站链接,因为他们寻求回到网站上一个功能齐全页面。...包括幽默感 当网站访客看到一个有趣或诙谐404错误网站信息时,可能会感到更有趣不是恼怒。一个很好例子是亚马逊、宜家和娱乐巨头HBO等网站404错误信息。...然而,与带有普通 "错误404 "信息网站相比,自定义404错误信息创造了更积极用户体验。这些自定义404信息将一个原本令人讨厌结果变成了用户新奇体验。

1.1K20

Python:urllib2模块URLError与HTTPError

注意,urllib2可以为我们处理重定向页面(也就是3开头响应码),100-299范围号码表示成功,所以我们只能看到400-599错误号码。...HTTP Error 404: Not Found HTTP Error,错误代号是404,错误原因是Not Found,说明服务器无法找到被请求页面。...浏览器应该继续显示原来文档。如果用户定期地刷新页面Servlet可以确定用户文档足够新,这个状态代码是很有用。 205 Reset Content 没有新文档。但浏览器应该重置它所显示内容。...206 Partial Content 客户发送了一个带有Range头GET请求,服务器完成了它。 3xx:重定向 300 Multiple Choices 多重选择。链接列表。...401 Unauthorized 被请求页面需要用户名和密码。 401.1 登录失败。 401.2 服务器配置导致登录失败。 401.3 由于 ACL 对资源限制未获得授权。

2.2K10

python爬虫(七)_urllib2:urlerror和httperror

注意,urllib2可以为我们处理重定向页面(也就是3开头响应码),100-299范围号码表示成功,所以我们只能看到400-599错误号码 #-*- coding:utf-8 -*- #23.urllib2...HTTP Error 404:Not Found HTTP Error,错误代号是404,错误原因是Not Found,说明服务器无法找到被请求页面。...浏览器应该继续显示原来文档。如果用户定期地刷新页面Servlet可以确定用户文档足够新,这个状态代码是很有用。 205 Reset Content 没有新文档。但浏览器应该重置它所显示内容。...206 Partial Content 客户发送了一个带有Range头GET请求,服务器完成了它。 3xx:重定向 300 Multiple Choices 多重选择。链接列表。...401 Unauthorized 被请求页面需要用户名和密码。 401.1 登录失败。 401.2 服务器配置导致登录失败。 401.3 由于 ACL 对资源限制未获得授权。

2.2K80

HTTP响应状态码:除了404,还有啥?

· 204 - No Content 没有新文档,浏览器应该继续显示原来文档。如果用户定期地刷新页面Servlet可以确定用户文档足够新,这个状态代码是很有用。...· 206 - Partial Content 客户发送了一个带有Range头GET请求(分块请求),服务器完成了它。 3xx - 重定向 客户端浏览器必须采取更多操作来实现请求。...· 302 - Found 类似于301,但新URL应该被视为临时性替代,不是永久性。注意,在HTTP1.0中对应状态信是“Moved Temporatily”。...· 410 - Gone 所请求文档已经不再可用,而且服务器不知道应该重定向哪一个地址。它和404不同在于,返回407表示文档永久地离开了指定位置,404表示由于未知原因文档不可用。...· 423 – 锁定错误。 5xx - 服务器错误 这些状态代码表示,服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身错误,不是请求出错。

1.9K20

Vue-Router学习笔记,持续记录

但因为没有 # 号,所以当用户刷新页面之类操作时,浏览器还是会给服务器发送请求。为了避免出现这种情况,所以这个实现需要服务器支持,需要把所有路由都重定向页面。...区别 url 展示上,hash 模式有“#”,history 模式没有 刷新页面时,hash 模式可以正常加载到 hash 值对应页面 history 没有处理的话,会返回 404,一般需要后端将所有页面都配置重定向首页路由...' }] 4.命名视图 命名视图用于同时展现多个路由视图,可以在界面中拥有多个单独命名视图,不是只有一个单独出口。...,重定向其他地方 (例如,return '/login') 一个导航守卫抛出了一个 Error 路由守卫内可以返回一个Promise对象调用函数导航方法将返回一个对象,通过这个对象可以判断导航成功与否...例如h5plusplus 对象,原本设置是在App.vue内监听加载事件初始化之后才能调用全局对象,但是由于路由不是懒加载,组件内调用外部js提前运行并调用了plus对象,导致js发生致命错误。

9.1K40

通过 Laravel 创建一个 Vue 单页面应用(六)

如果您需要跟上,我们在 第5部分  中停止了删除用户功能,以及在成功删除后如何重定向用户。我们还研究了如何将 HTTP 客户机提取到一个专用模块中,以便在整个应用程序中重用。...唯一区别是用现有用户数据(包括用户id)填充表单,不是用空表单创建用户。 配置路由 接下来,我们需要配置 Vue 路由并链接到页面,以便可以导航用户创建页面。...这时你提交表单的话会在控制台看到带有 405 错误状态错误信息。 添加 API 接口 我们准备在 Laravel 中添加 API 接口以创建新用户。这将类似于编辑现有用户。...: { "data": { "id":51, "name":"Paul Redmond", "email":"paul@example.com" } } 如果您提交数据无效...我们将清除表单并重定向用户编辑页: onSubmit($event) { this.saving = true this.message = false api.create

3.8K20

【Django】 开发:补充知识

count:需要分类数据对象总数 :分页后页面总数 :从1开始range对象, 用于记录当前面码数 每页数据个数 Paginator方法 page(number) 参数...,包含以下两个异常子类 PageNotAnInteger:当向page()传入一个不是整数值时抛出 EmptyPage:当向page()提供一个有效值,但是那个页面上没有任何对象时抛出 Page对象...这告诉浏览器该文档是CSV文件,不是HTML文件 响应会获得一个额外Content-Disposition标头,其中包含CSV文件名称。...它将被浏览器用于“另存为…”对话框 对于CSV文件中每一行,调用writer.writerow,传递一个可迭代对象,如列表或元组。.../sites-enabled/default # 新添加location /static 路由配置,重定向指定 第一步创建路径即可 server { ...

6.4K30
领券