Fat Free Framework (F3):自定义 404 页面(和其他错误)

2024-01-05

如何处理 404 自定义页面(以及可能的其他错误)?

我只是尝试在路由部分添加

GET /@codes /WebController->error

我的 Class WebController 处理错误的地方,对于 404 我解决了(部分)。实际上它适用于

http://mydomain.ext/itdoesntexists

但如果我记得一个

http://mydomain.ext/sub/maybe_another_sub/and_so_on/doesnt_exist

我的路线(当然)行不通。

顺便说一句,在每种情况下,这条路线都不会推送 404 标头(只是一种疯狂的想法,我正在考虑 Google 寻找资源,但它没有收到“纯粹的”404)。

谢谢


您不必为此定义路线。 F3 将为任何未定义的路由自动生成 404 状态代码。

如果要定义自定义错误页面,则需要设置 ONERROR 变量。

这是一个简单的例子:

$f3->route('GET /','App->home');
$f3->set('ONERROR',function($f3){
  echo \Template::instance()->render('error.html');
});
$f3->run();

error.html 定义为:

<!DOCTYPE html>
<head>
<title>{{@ERROR.text}}</title>
</head>
<body>
  <h1>{{@ERROR.text}}</h1>
  <p>Error code: {{@ERROR.code}}</p>
</body>
</html>

现在,如果您调用任何未定义的路由(例如 /foo),模板 error.html 将使用 404 状态代码呈现。

注意:这适用于其他错误代码。其他错误代码由 F3 或您的应用程序使用以下命令触发$f3->error($status), $status 是任何有效的 HTTP 状态代码(404、500、403 等...)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fat Free Framework (F3):自定义 404 页面(和其他错误) 的相关文章

  • 如何在 Laravel 5.3 中使用标头参数调用 SOAP wsdl?

    I use artisaninweb laravel soap包来运行 SOAP wsdl 文件 为了解析 WSDL 文件 我需要将其与标头参数一起调用 所以换句话来说 首先我需要设置标头参数 然后将其与此参数一起调用 在我的 larave
  • 特殊字符和 URL 重写

    我目前正在开发一个应用程序 该应用程序从暴雪社区 API 中提取 JSON 数据并使用 PHP 对其进行解析 一切正常 直到我遇到一个名字中有特殊字符的角色 为了提取角色数据 我需要知道他们的角色名称和他们所在的领域 我将名称和领域通过 U
  • whereHas 之后的 where 查询在 Laravel 5.4 中无法正常工作

    就我而言 我有channels与多对多关系的表类别 table 我想获取他们的频道类别包含像doing这样的动态值LIKE查询每个类别的标题 但我需要检查 a 的另一列channel通过 where 子句 这是一个channel结构 id
  • 如何在PHP5.5上安装V8js?

    我想在 Ubuntu 12 04 上安装 PHP5 5 的 v8js 扩展 但无法使其工作 当我尝试使用 PECL 安装 v8js 扩展版本 0 2 0 最新 时 我收到以下消息 配置 错误 libv8 必须是版本 3 24 6 或更高版本
  • 我可以为我的记录器使用静态类吗?

    最近我被告知静态类 方法是邪恶的 以我的 Logger 类为例 class Logger private static logs array public static function add msg self logs msg publ
  • 有没有好的php库可以将html/php文档转换为对象

    我看到很多可以解析 html 的 php 库 一个很好的例子是查询路径 http querypath org 它模仿 Jquery Api 不过 我想分析一下phtml 因此 该库不仅擅长分析 DOM 而且还擅长分析php处理指令 http
  • php登录会话登录变量

    我正在学习 php 并已报名参加课程 我的用户登录信息显示如下 我的问题是登录时是否必须在会话中选择我想要的所有字段 我不能只使用 选择电子邮件 并按此拉出所有行 或者我必须在登录时选择所有行吗 例如 将该 uid uid 用于该会话 它是
  • 无法从 localhost/xampp 发送邮件

    无法连接到 mail google com 端口 587 上的邮件服务器 请验证您的 SMTP 和 smtp port 设置php ini or use ini set 我将 xampp php ini 和 sendmail ini 文件配
  • 你能帮助我更好地理解 PHP 类吗?

    我是一个学习速度很慢的人 我想在编码方面 我已经学习 PHP 几年了 但我仍然不理解类 所以是时候我付出一些努力 至少更好地理解它们了 我凡事都使用函数 人们经常在这里对我发表评论 他们不敢相信我有一个社交网站 而且我不使用课程 我真的不明
  • 如何使用 DbSession 在 Yii2 中创建用户会话管理系统 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 今天 当我想为我的网站创建用户个人资料页面并希望创建系统用户可以管理他在此系统中的活动会话时 需要 查看活动会话 浏览器和平台 查看当
  • 仅当客户尚未使用优惠券时,才将优惠券添加到处理订单电子邮件中

    我发现了这个片段 它在订单邮件中添加了优惠券 我想仅当客户未使用任何优惠券时才将其显示在处理订单邮件中 add action woocommerce email before order table add content 20 funct
  • PHP Remedy API 调用创建带有附件的条目不起作用(使用 Postman Works!)

    当我尝试创建带有 PDF 附件的条目时 我已经为此工作了好几天 但没有成功 使用补救 REST API 我每次都会收到超时错误 500 或错误请求 这是文档 https docs bmc com docs ars2002 example o
  • PHP 数组比较

    如何比较两个数组 例如我有array a b c and array a c b 当它们进行比较时 它会返回 true 但如果其中一个字母没有在其中之一中找到 它将返回 false 顺序并不重要 在比较之前 您需要将两个数组的内容调整为相同
  • 尝试加载 php_oci8.dll 时 PHP 启动时出现警告

    我正在使用 XAMPP 并尝试为 sql 配置 Oracle 连接 我取消了该行的注释extension php oci8 dll一开始出现错误 缺少oci dll 但后来我从Oracle网页下载了instantclient 我尝试过版本
  • 如何从 PHP 中的两个不同数组获取公共值

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有两个带有一些用户 ID 的数组 array1 array 5 26 38 42 array2 array 15 36 38 42 我需
  • PHP 会话混乱

    好吧 我已经很困惑了 我有一个存储在会话中的对象 我可以向该对象添加项目 到目前为止非常简单 我像这样初始化对象 template new Template mysqli SESSION template serialize templat
  • Codeigniter 错误:不允许您尝试上传的文件类型

    如果我上传一个csv文件 没有问题localhost一切工作正常 但是当我在实时服务器上上传我的应用程序并上传csv文件然后抛出此错误 The filetype you are attempting to upload is not all
  • PHP 构建/集成工具:您使用它们吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • php SimpleXML 属性丢失

    我这里有以下 xml 文档 编辑 示例见下文 我正在使用 php SimpleXML 将其转换为对象来读取它 xmlContent file get contents path test xml tablesRaw new SimpleXM
  • PHP 中的金字塔星号

    请看我的代码 for row var row gt 1 row for j 0 j lt row j echo echo echo nbsp Output 但我需要输出如下 您可能想查看一些字符串函数

随机推荐

  • mongodb数据目录权限

    早些时候 我将所有 mongodb 数据文件存储在 var lib mongodb 目录中 etc mongodb conf 中的 dbpath 条目是 var lib mongodb 现在我想将数据目录更改为 vol db 所以我创建了目
  • 非泛型类是否可以包含 .NET(C# 或 VB.NET)中的泛型列表?

    我希望有人可以帮助我理解这样的事情是否可能 如何可能 在这种情况下 假设您正在尝试对电子表格或数据库中的网格进行建模 但每列中的数据只能是一种数据类型 示例 第 1 列只能包含整数 我创建了一个通用类来模拟列结构 如下所示 public c
  • 为什么“C”中的索引从零开始?

    为什么 C 中数组的索引从 0 开始 而不是从 1 开始 在C中 数组的名称本质上是一个指针 但请看评论 对内存位置的引用 等等表达式array n 指的是一个内存位置n远离起始元素的元素 这意味着索引被用作偏移量 数组的第一个元素恰好包含
  • 在不使用会话上下文的情况下在 Web 应用程序中保留值

    我有一个 变量 用户可以在 JSP Struts 应用程序中修改该变量 该变量必须在整个 Web 应用程序的会话中保留 他们可能会离开设置和查看该变量的页面 仍然留在应用程序中 并且当他们回来时 他们上次为该变量设置的值应该仍然存在 显而易
  • iOS7-UItableViewCell 以 Grouped 样式显示在表格视图中

    在 iOS7 中 分组表视图的单元格显示为表视图的全宽 更像是普通表视图样式 但在模拟器的设置应用程序中 分组样式看起来不同 对于实现这种类型的单元有什么帮助吗 该解决方案适用于 iOS7 以及以前版本的 iOS 创建自定义 UITable
  • 是否有正则表达式可以返回相同字符的重复匹配?

    使用 NET 正则表达式 假设我有以下文本 哒哒哒哒哒哒 我想测试任何字符的重复次数是否超过 2 次 正则表达式不应返回包含双字母 例如单词 的文本的匹配项 look UPDATE 不要假设输入文本仅包含字母 d 的重复 我想要任何重复的字
  • 使用 dplyr 和 lazyeval 进行编程

    我在以保留非标准评估的方式重构 dplyr 时遇到问题 假设我想创建一个始终选择和重命名的函数 library lazyeval library dplyr df lt data frame a c 1 2 3 f c 4 5 6 lm c
  • if 语句过多

    我有一些话题要讨论 我有一段代码 24ifs elifs Operation是我自己的类 代表的功能类似于Enum https docs python org 3 library enum html 这是代码片段 if operation
  • Android:调用 onStop() 时“java.lang.IllegalArgumentException:服务未注册”

    我有一个需要长时间运行的应用程序Service 我需要确保当用户离开时Activity the Service stops 因此我实施了onStop 关闭服务 这是代码 Override protected void onStop supe
  • ButterKnife 中 R2.java 中的最后一个字段

    这是一个扩展Android 为什么我们需要使用 R2 而不是 R 和 butterknife https stackoverflow com questions 42362062 android why do we need to use
  • C++ 二进制转十进制

    所以我知道有一种方法可以使用 bitset 库将 Dec 转换为二进制 但是您可以使用 bitset 库将二进制转换为十进制吗 或者你必须手动完成 bitset lt 8 gt bin x number 可以 但它应该是一个字符串 std
  • 在线程中创建的 DatabaseWrapper 对象只能在同一线程中使用。”当尝试使用 celery 插入数据库时

    我正在使用 celery 从 csv 读取数据并将其上传到 Postgres celery 任务正在工作 我认为 但是 django 抛出错误 我正在获取一个文件 将其转换为 pandas 删除 2 列 然后转换为 numpy 并传递给 c
  • 无法将图像上传到 Django 项目,获取 Form 对象没有属性“保存”

    我正在尝试通过模板输入的文件上传图像文件 我已遵循所有说明 但在附加文件并单击提交时出现此错误 AttributeError PicUpForm object has no attribute save 因此我的图像没有上传到指定的目录 并
  • iPad/iPhone双击问题

    我有一个非常相似的问题iPad iPhone 悬停问题导致用户双击链接 https stackoverflow com questions 3038898 ipad iphone hover problem causes the user
  • solr tomcat UTF-8

    我在 tomcat 中有一个 solr 设置 并且使用 jdbc 从数据库导入数据 但是当我在导入数据后使用非 unicode 字符时 发送查询时它无法识别结果中的查询 对于带有 solr 的 Tomcat 的 UTF 8 支持 您可能需要
  • Spring Web 应用程序中配置文件的处理

    我曾多次遇到同样的问题 我想了解其他人对这个问题的看法 假设我们将 Spring 应用程序打包为 war文件 我们想运行它几种环境 开发 测试 预生产 生产 等 为了访问应用程序所需的基础设施 数据库 网络服务等 我们将访问信息存储在配置文
  • 在 C# 中将 Httpheader 添加到 selenium chrome webdriver

    我的 C 代码看起来像这样 用于创建 chrome Web 驱动程序 我想将自定义 HTTP 标头添加到我的所有 http 请求中 例如 用户代理 Android var service ChromeDriverService Create
  • jQuery 删除所有元素,直到找到 id='whatever'

    需要删除从开始标签到下一个标签的所有代码 我试过这个 page1 remove 但这只会删除标签之间的内容 我不知道 page1 和 page2 标记之间还有什么 因为代码是根据页面上表单元素的类型动态添加的 div div div div
  • nmap 和 print(nm.csv()) 需要帮助打印到 csv.file

    我需要您帮助处理 nmap 脚本并将输出打印到 csv 文件 当我运行脚本并完成它时print nm csv 我得到了以下显示的结果 这是我想要的第一名 host hostname hostname type protocol port n
  • Fat Free Framework (F3):自定义 404 页面(和其他错误)

    如何处理 404 自定义页面 以及可能的其他错误 我只是尝试在路由部分添加 GET codes WebController gt error 我的 Class WebController 处理错误的地方 对于 404 我解决了 部分 实际上