Search code examples
phpcachingtypo3realurl

Wrong TYPO3 Page Cache


This Problem occurs sporadically on Pages with a large Number of visitors. Sometimes TYPO3 displays the content of a completely different page (including the HTML head Section).

For example, if the user calls the following page: /products/ (default Controller ProductController with listAction) TYPO3 shows the content of a random Controller and action of the same Plugin on the Page (like ApplicationController with showAction). The Site does not redirect to another Page, it's just showing wrong content!

I already tried the following things:

  • I added the Controller + action to the nonCacheableControllerActions (Problem occurs a day later again)
  • Adding ?no_cache=1 to the URL (Problem is solved, but the page speed is reduced)
  • Clearing Cache (Problem is solved, no matter what cache is cleared. But the Problem occurs a day later again)
  • I wrote a script which called the page every few minutes which seems to fix the problem.

Does anybody else have the same Problem?

Specifications:

  • TYPO3 Version: 7.6.22
  • realurl Version: 2.2.1

Solution

  • Those caching problems are usually occuring because of wrong or missing cHashes.

    You can use $GLOBALS['TSFE']→reqCHash(); in your controller's actions. This disables Caching if no cHash is set, therefore making sure you don't get incorrect cache entries. Please note: If you set [pageNotFoundOnCHashError] = 1 in your system settings you will get page not found errors when the page is called without cHash, if it's set to 0 the page will still be displayed but not cached.


    The following information may be outdated, see moe2k's answer below for more current information.

    Alternatively, there is a system parameter "[FE][cHashRequiredParameters]" - you can add your plugin parameters there. If no cHash is given but one of the parameters are set, then TYPO3 triggers the configured cHash Error behaviour. I believe cHashes are then set automatically for typolinks, you can try and see though. If they aren't set automatically you should set "useCacheHash = 1" on your links to the show action.

    I prefer & use the first variant.