我在一个TYPO3网站上创建了自己的“404 Page”错误页面,并通过/typo3conf/LocalConfiguration.php实现了它,使用该页面的对话URL路径实现了它:
return [
...
'FE' => [
...
'pageNotFound_handling' => '/page-not-found/',
]
]现在,当我调用一个不存在的页面时,会显示错误页面,但是在HTML源代码之前有一个4位字母数字(据我目前所见),在HTML源代码之后有一个“0”。示例(大多数重新加载后,开头的数字是不同的)
37b3
<!DOCTYPE html>
...
</html>
0当调用错误页URL本身时,该页将正确返回,没有这些编号。
激活或停用RealURL扩展没有什么区别。
提前谢谢!
发布于 2017-01-02 10:58:57
我从安装工具中添加了完整的描述,我想我们可能会在那里找到解决方案。
TYPO3应该如何处理对不存在/可访问的页面的请求。
notfound.html或http://www.example.org/errors/notfound.html。READFILE:fileadmin/notfound.html )之后直接读取和输出。USER_FUNCTION:fileadmin/class.user_notfound.php:user_notFound->pageNotFound,其中文件必须包含一个带有方法pageNotFound()的类user_notFound,其中包含有两个参数$param和$ref。您配置的内容:
您正在传递一个字符串,因此TYPO3希望找到一个没有的文件,因为它更像是一个URL。
从你想要达到的目标来看,我会和REDIRECT:/page-not-found/一起去。
谢谢你指出这个问题,我将从核心中删除string配置,因为让更多的人陷入这个陷阱是没有意义的。
发布于 2017-03-28 15:01:26
简而言之:更改LocalConfiguration.php FE部分中的以下行:
'pageNotFound_handling' => '/your404page.html',至
'pageNotFound_handling' => 'REDIRECT:/your404page.html',发布于 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页内容周围的数字将消失。
https://stackoverflow.com/questions/41424276
复制相似问题