feat: EXT:staticfilecache serves cached pages without PHP again, as on TYPO3 10

Every page view goes through TYPO3 13 since the switch; staticfilecache
15.2 writes a gzip copy of each cacheable page, and the TYPO3 10 rewrite
rules in public/.htaccess let Apache deliver it directly (GET, no query
string, no backend login). Pages answer in about 2 ms instead of
0.5-4 s; static and dynamic output are identical for a sample of 22
sitemap URLs.

A flush of the pages cache group (travel data and snow report imports,
"clear frontend caches", deploys) removes the files; a page's own cache
lifetime still applies through the generated per-page .htaccess.

X-SFC-Tags is not passed on: with every record of a page as a tag it
reaches 100+ KB, more than Apache accepts from PHP-FPM, and it would
expose internal record ids. Debug headers stay off for the same reason.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
frommeandClaude Opus 5.5 committed 2026-10-24 19:05:21 +02:00
1 parent df3d823de4
commit 283f54c56c
4 files changed
+233 -1

No files matched your search

+38
View File
@@ -97,6 +97,44 @@ return [
'scheduler' => [
'maxLifetime' => '1440',
],
'staticfilecache' => [
'backendDisplayMode' => 'both',
'boostMode' => '0',
'clearCacheForAllDomains' => '1',
'cspGenerationOverride' => '0',
'debugHeaders' => '0',
'disableInDevelopment' => '0',
'enableGeneratorBrotli' => '0',
'enableGeneratorGzip' => '1',
'enableGeneratorPhp' => '0',
'enableGeneratorPlain' => '0',
'hashUriInCache' => '0',
'headerSizeBuffer' => '1.5',
'htaccessTemplateName' => 'EXT:staticfilecache/Resources/Private/Templates/Htaccess.html',
'inlineAssetsFileSize' => '50000',
'inlineScriptMinify' => '0',
'inlineServiceFavIcon' => '0',
'inlineServiceScripts' => '0',
'inlineServiceStyles' => '0',
'inlineStyleAssets' => 'ico,png,woff2',
'inlineStyleMinify' => '0',
'largeIdentifierInCacheTable' => '0',
'maxHeaderSize' => '8192',
'overrideCacheDirectory' => '',
'overrideClientUserAgent' => '',
'phpTemplateName' => 'EXT:staticfilecache/Resources/Private/Templates/Php.html',
'rawurldecodeCacheFileName' => '0',
'renameTablesToOtherPrefix' => '0',
'sendCacheControlHeaderRedirectAfterCacheTimeout' => '1',
'sendHttp2PushEnable' => '0',
'sendHttp2PushFileExtensions' => 'css,js',
'sendHttp2PushFileLimit' => '10',
'sendHttp2PushLimitToArea' => '',
'useFallbackMiddleware' => '1',
'useReverseUriLengthInPriority' => '1',
'validFallbackHeaders' => 'Content-Type,Content-Language,Content-Security-Policy,Link',
'validHtaccessHeaders' => 'Content-Type,Content-Language,Content-Security-Policy,Link',
],
],
'FE' => [
'cacheHash' => [