Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TYPO3 7.6:404错误页面:用数字包装的HTML_Typo3_Typo3 7.6.x - Fatal编程技术网

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

TYPO3 7.6:404错误页面:用数字包装的HTML,typo3,typo3-7.6.x,Typo3,Typo3 7.6.x,我在一个TYPO3网站上创建了自己的“404页面未找到”错误页面,并通过/typo3conf/LocalConfiguration.php实现了它,如下所示,使用页面的URL路径: return [ ... 'FE' => [ ... 'pageNotFound_handling' => '/page-not-found/', ] ] 现在,当我调用一个不存在的页面时,会显示错误页面,但在HTML源代码之前有一个4位字母数字数

我在一个TYPO3网站上创建了自己的“404页面未找到”错误页面,并通过/typo3conf/LocalConfiguration.php实现了它,如下所示,使用页面的URL路径:

return [
    ...
    'FE' => [
        ...
        'pageNotFound_handling' => '/page-not-found/',
    ]
]
现在,当我调用一个不存在的页面时,会显示错误页面,但在HTML源代码之前有一个4位字母数字数字(据我所知是十六进制),后面是一个“0”。示例(大多数重新加载后,开头的数字不同):

37b3
...
0
调用错误页面URL本身时,页面将正确返回,没有这些数字

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


提前多谢

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

TYPO3应如何处理对不存在/可访问页面的请求。
  • 空(默认值)

    显示页面树中向上的下一个可见页面

  • “正确”或“1”

    将显示一条错误消息

  • 字符串

    要显示的静态HTML文件(使用正确的标题读取内容和输出),例如
    notfound.HTML
    http://www.example.org/errors/notfound.html

  • 前缀“重定向:”

    如果前缀为“REDIRECT:”它将重定向到前缀后的URL/脚本

  • 前缀“READFILE:”

    如果前缀为“READFILE”,则剩余的字符串将是一个HTML文件,在标记“############当前URL#####”和##原因###以及原因文本(例如:
    READFILE:fileadmin/notfound HTML)后,该文件将被直接读取和输出

  • 前缀“用户功能:”

    如果前缀为“USER\u FUNCTION:”将调用一个用户函数,例如
    USER\u FUNCTION:fileadmin/class.USER\u notfound.php:USER\u notfound->pageNotFound
    ,其中文件必须包含一个class
    USER\u notfound
    ,其中包含一个方法
    pageNotFound()
    ,其中包含两个参数
    $param
    $ref

  • 您配置的内容: 您正在传递一个字符串,因此TYPO3希望找到一个您没有的文件,因为它更像一个URL

    根据您试图实现的目标,我将使用
    重定向:/page not found/


    谢谢你指出这一点,顺便说一句,我将从核心中删除
    字符串
    配置,因为让更多的人陷入这个陷阱是没有意义的。

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

    TYPO3应如何处理对不存在/可访问页面的请求。
  • 空(默认值)

    显示页面树中向上的下一个可见页面

  • “正确”或“1”

    将显示一条错误消息

  • 字符串

    要显示的静态HTML文件(使用正确的标题读取内容和输出),例如
    notfound.HTML
    http://www.example.org/errors/notfound.html

  • 前缀“重定向:”

    如果前缀为“REDIRECT:”它将重定向到前缀后的URL/脚本

  • 前缀“READFILE:”

    如果前缀为“READFILE”,则剩余的字符串将是一个HTML文件,在标记“############当前URL#####”和##原因###以及原因文本(例如:
    READFILE:fileadmin/notfound HTML)后,该文件将被直接读取和输出

  • 前缀“用户功能:”

    如果前缀为“USER\u FUNCTION:”将调用一个用户函数,例如
    USER\u FUNCTION:fileadmin/class.USER\u notfound.php:USER\u notfound->pageNotFound
    ,其中文件必须包含一个class
    USER\u notfound
    ,其中包含一个方法
    pageNotFound()
    ,其中包含两个参数
    $param
    $ref

  • 您配置的内容: 您正在传递一个字符串,因此TYPO3希望找到一个您没有的文件,因为它更像一个URL

    根据您试图实现的目标,我将使用
    重定向:/page not found/


    感谢您指出这一点,顺便说一句,我将从核心中删除
    字符串
    配置,因为让更多的人陷入这个陷阱是没有意义的。

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

    'pageNotFound_handling' => '/your404page.html',
    


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

    'pageNotFound_handling' => '/your404page.html',
    

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

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

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

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

    在TYPO3 8 LTS中,guzzle库用于处理HTTP请求。在guzzle代码中,我找不到任何关于处理分块数据的内容。Guzzle将检查cUrl PHP扩展是否存在,并将其用作首选传输。在大多数安装中,cUrl是存在的,因为它自动解码分块数据
    'pageNotFound_handling' => 'REDIRECT:/your404page.html',