aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Guichard <nicolas@guichard.eu>2023-03-02 18:38:04 +0100
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>2023-03-15 23:14:34 +0000
commit9d9c3bf943768424b81db7d22943e198865931ca (patch)
tree5791695e39ca9c76e24c697c211dd531cad770c5
parent1d217b2b00101605319161385b18d74376dde963 (diff)
downloadnextcloud-server-9d9c3bf943768424b81db7d22943e198865931ca.tar.gz
nextcloud-server-9d9c3bf943768424b81db7d22943e198865931ca.zip
Fix Cache-Control header of non-versioned assets
Non-cache-busted assets such as /dist/core-main.js also matched the regex meant for cache-busted assets (note the ? at the end of the regex). The FilesMatch directive for cache-busted assets coming after the non-cache-busted version all assets actually got the immutable flag in their Cache-Control header. This caused client-side errors on updates. Query strings are not actually passed to FilesMatch directives so we need another way to tell cache-busted/versionned assets apart from non-versioned assets, here using If/Else directives. Signed-off-by: Nicolas Guichard <nicolas@guichard.eu>
-rw-r--r--.htaccess11
1 files changed, 6 insertions, 5 deletions
diff --git a/.htaccess b/.htaccess
index dd0fce231e8..956e29ea7c4 100644
--- a/.htaccess
+++ b/.htaccess
@@ -41,11 +41,12 @@
# Add cache control for static resources
<FilesMatch "\.(css|js|svg|gif|png|jpg|ico|wasm|tflite)$">
- Header set Cache-Control "max-age=15778463"
- </FilesMatch>
-
- <FilesMatch "\.(css|js|svg|gif|png|jpg|ico|wasm|tflite)(\?v=.*)?$">
- Header set Cache-Control "max-age=15778463, immutable"
+ <If "%{QUERY_STRING} =~ /(^|&)v=/">
+ Header set Cache-Control "max-age=15778463, immutable"
+ </If>
+ <Else>
+ Header set Cache-Control "max-age=15778463"
+ </Else>
</FilesMatch>
# Let browsers cache WOFF files for a week