首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3 7.6: 404错误页面:用数字包装的HTML

TYPO3 7.6: 404错误页面:用数字包装的HTML
EN

Stack Overflow用户
提问于 2017-01-02 09:35:52
回答 3查看 1.5K关注 0票数 0

我在一个TYPO3网站上创建了自己的“404 Page”错误页面,并通过/typo3conf/LocalConfiguration.php实现了它,使用该页面的对话URL路径实现了它:

代码语言:javascript
复制
return [
    ...
    'FE' => [
        ...
        'pageNotFound_handling' => '/page-not-found/',
    ]
]

现在,当我调用一个不存在的页面时,会显示错误页面,但是在HTML源代码之前有一个4位字母数字(据我目前所见),在HTML源代码之后有一个“0”。示例(大多数重新加载后,开头的数字是不同的)

代码语言:javascript
复制
37b3
<!DOCTYPE html>
...
</html>
0

当调用错误页URL本身时,该页将正确返回,没有这些编号。

激活或停用RealURL扩展没有什么区别。

提前谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-02 10:58:57

我从安装工具中添加了完整的描述,我想我们可能会在那里找到解决方案。

TYPO3应该如何处理对不存在/可访问的页面的请求。

  1. 空(默认) 显示页面树中向上的下一个可见页。
  2. 'true‘或'1' 显示了一个错误消息。
  3. 字符串 要显示的静态HTML文件(读取内容和具有正确标题的输出),例如notfound.htmlhttp://www.example.org/errors/notfound.html
  4. 前缀“重定向:” 如果前缀为“重定向:”,它将重定向到前缀后面的URL/脚本。
  5. 前缀"READFILE:" 如果以"READFILE“作为前缀,那么它将期望剩下的字符串是一个HTML文件,该文件将在标记"###CURRENT_URL###”替换为REQUEST_URI和###REASON###并使用原因文本(例如:READFILE:fileadmin/notfound.html )之后直接读取和输出。
  6. 前缀"USER_FUNCTION:" 如果以"USER_FUNCTION:“作为前缀,则调用一个用户函数,例如,USER_FUNCTION:fileadmin/class.user_notfound.php:user_notFound->pageNotFound,其中文件必须包含一个带有方法pageNotFound()的类user_notFound,其中包含有两个参数$param$ref

您配置的内容:

您正在传递一个字符串,因此TYPO3希望找到一个没有的文件,因为它更像是一个URL。

从你想要达到的目标来看,我会和REDIRECT:/page-not-found/一起去。

谢谢你指出这个问题,我将从核心中删除string配置,因为让更多的人陷入这个陷阱是没有意义的。

票数 1
EN

Stack Overflow用户

发布于 2017-03-28 15:01:26

简而言之:更改LocalConfiguration.php FE部分中的以下行:

代码语言:javascript
复制
'pageNotFound_handling' => '/your404page.html',

代码语言:javascript
复制
'pageNotFound_handling' => 'REDIRECT:/your404page.html',
票数 1
EN

Stack Overflow用户

发布于 2017-06-21 19:12:45

原因

实际原因是分块的内容编码和TYPO3在某些情况下无法解码。在您的示例中,未找到的页面处理程序最终使用GeneralUtility::getUrl()检索错误页。

如果启用了[SYS][curlUse],它将使用cUrl检索页面,没有问题。

如果您没有启用[SYS][curlUse],它将打开一个套接字,读取标头,然后读取正文的其余部分。如果the服务器使用“分块”内容--编码主体将包含数据块,每个块以十六进制格式的长度开始。内容以一个空块结尾(当然是长度为“0”的一行)。cUrl显然知道如何解码分块数据。

getUrl()本身不知道如何处理块数据,并将内容作为页面内容使用。

在TYPO3 8 LTS中,口吻库用于处理HTTP。在口吻代码中,我找不到任何关于处理块数据的信息。Guzzle将检查是否存在cUrl PHP扩展,并将其用作首选传输。在大多数安装中,cUrl都是存在的,而且由于这是自动解码块数据,所以没有任何问题是可见的。我必须用禁用cUrl的PHP测试口香糖,看看这个问题是否也存在于v8/master中。

变通办法/解决办法

如果在安装中启用了cUrl扩展,那么您可以在安装工具中简单地设置[SYS][curlUse]。404页内容周围的数字将消失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41424276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档