2017-06-12 64 views
0

我们有一个网站有时会为特定网址提供错误的内容。
该页面有一个插件,默认情况下应显示记录列表(或第一个记录列表,因为列表按首字母分组)。点击链接后,可以在同一页面上详细查看一些记录。缓存了错误的内容

每隔一段时间发生缓存问题: 而不是列表中显示的详细记录。

尽管我们使用realurl,但基本URL也会出现所有问题。
有关概述,我将只写入url参数,前面假设www.domain.tld/index.php?

要调用的页面是id=61。我看到的是
cHash=3df3421afc42d3d5bfa1bc50603ea00d&id=61&tx_citkoegovservicelight_ansprechpartner%5Baction%5D=show&tx_citkoegovservicelight_ansprechpartner%5Bansprechpartner%5D=282

在页面的HTML源代码中,我使用扩展名page_params显示页面调用参数。在这里,我看到:
tx_citkoegovservicelight_ansprechpartner[action]=show&tx_citkoegovservicelight_ansprechpartner[ansprechpartner]=282&tx_citkoegovservicelight_ansprechpartner[letter]=kontakt&id=61

两个陌生注意事项:没有cHash参数,有哪些不应该有详细视图中使用,绝不应该有kontakt(只有单个字符被用于该值的附加参数tx_citkoegovservicelight_ansprechpartner[letter]以该字母开头的所有记录的列表=无详细视图)

使用这些参数不会显示详细信息视图,而是显示列表视图(对于字母“A”)。

我没有找到为什么应该调用这个特殊的URL(无链接),我不知道为什么TYPO3应该缓存属于另一个URL的内容。
而且这是TYPO3缓存的问题,因为如果我清除此单页的缓存,所有工作都会正确。

+1

我知道这个问题'而不是列表中显示一个详细的记录'从一个自定义的extbase扩展。经过数月绝望的摆弄(以及难以重现,因为它不会立即发生),我已经切换到使用一个单独的页面的列表和详细信息,这是可惜的URL路径和更多的工作设置在BE - 但从那时起,错误(当然)消失了。 – Urs

回答

0

请检查我对另一个issue的答案。在这种情况下,接受的答案是正确的,但在你的情况下,它可能是由于cHash计算失败而导致的,因为它与RealURL无关。

尝试清除缓存,然后在那之后转到tx_citkoegovservicelight_ansprechpartner[action]=show&tx_citkoegovservicelight_ansprechpartner[ansprechpartner]=282&tx_citkoegovservicelight_ansprechpartner[letter]=kontakt&id=61

然后只需打开页面id=61。如果你看到了错误的缓存的结果,那么原因是在以下因素的组合:

  • 插件的作用是缓存
  • 缓存失败被允许在安装
  • cHash计算失败

为了防止这种情况,您应该在安装工具中启用pageNotFoundOnCHashError。那么上面有问题的链接将触发404,并且不会强制TYPO3呈现页面。

对于链接来自何处的问题。如果网站已经存在,它可能是一切:从一个爬虫,它以某种方式将链接本身建立到试图玩参数的用户。

+0

'插件的动作被缓存'是的,'缓存失败是允许在安装'否,'cHash计算失败'似乎是这样。 –

+0

因此,启用了'pageNotFoundOnCHashError',但是当您调用'tx_citkoegovservicelight_ansprechpartner [action] = show&tx_citkoegovservicelight_ansprechpartner [ansprechpartner] = 282&tx_citkoegovservicelight_ansprechpartner [letter] = kontakt&id = 61'时,您会看到插件输出而不是404? –

+0

是的。清除缓存后,我会看到记录详细信息视图。问题可能是附加参数(字母)是一个有效的参数,但它在详细视图(仅列表视图)中无效。而且依然没有任何破坏。 –