Vypnutí Cache-Control pro 302 přesměrování (RewriteRule) v .htaccess

Vyřešeno528 zhlédnutíWebhostinghtaccess Redirect server cache
0

Dobrý den,

na doméně spintrace.com se snažím v .htaccess nastavit přesměrování na základě Accept-Language. Fungovat by to mělo takto:

GET https://www.spintrace.com/

-> pokud je Accept-Language „cs“, pak přesměruj (302) na https://www.spintrace.com/cs/ a necachuj toto přesměrování

-> pokud je Accept-Language „en“ nebo není poskytnut, pak přesměruj (302) na https://www.spintrace.com/en/ a necachuj toto přesměrování

+ jedno pravidlo na přesměrování HTTP -> HTTPS (může být cachováno)

Implementováno těmito pravidly:

RewriteEngine On

Header always set Cache-Control "max-age=0, no-store, no-cache, must-revalidate" env=nocache
Header always set Expires "Thu, 01 Jan 1970 00:00:00 GMT" env=nocache

# Language based redirection
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteCond %{HTTP:Accept-Language} ^cs [NC]
RewriteRule (.*) https://%{HTTP_HOST}/cs/ [R,L,env=nocache:1]

# if requesting root, but the above language didn't kick in, then redirect to default en
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteRule (.*) https://%{HTTP_HOST}/en/ [R,L,env=nocache:1]

# presmerovani na HTTPS
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R,L] 
Header set Content-Security-Policy "upgrade-insecure-requests;"

Pravidla mám na místě a fungují, problém je, že se mi do odpovědí plete odněkud Cache-Control header navíc, který způsobí cachování redirectů a tím pádem špatnou funkčnost (tento typ redirectu nemá smysl vůbec cachovat -> pro každého klienta bude jiný).

https://www.spintrace.com
 HTTP/1.1 302 Found
Date: Tue, 18 Oct 2022 12:46:54 GMT
Server: ATS
Cache-Control: max-age=0, no-store, no-cache, must-revalidate
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Location: https://www.spintrace.com/en/
Cache-Control: max-age=300
Expires: Tue, 18 Oct 2022 12:51:54 GMT
Content-Length: 213
Content-Type: text/html; charset=iso-8859-1
Age: 0
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
    <title>302 Found</title>
</head>
<body>
<h1>Found</h1>
<p>The document has moved <a href="https://www.spintrace.com/en/">here</a>.</p>
</body>
</html>

V odpovědi je vidět, že mé nastavení cache Headerů se do odovědi přidá, ale odněkud se tam bere další sada cache headrů navíc. Zkoušel jsem cachování i úplně vypnout (viz návody zde na wedosu), ale vypnutí cache mi spolehlivě funguje pouze pro responsy 200 OK. Pro 302 responsy se tam někde natvrdo přidává cache control a vypnout vůbec nejde.

Prosím pomoc… už nevím co mohu udělat více…

Možná by šlo provést ten redirect přes PHP a nastavit headry tam, ale tomu bych se prozatím chtěl vyhnout, pokud to nebude potřeba.

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
MB313456 Vybral nejlepší odpověď 19. 10. 2022
0
91.75K Odpověď od WEDOS Internet, a.s. 0 Comments

Problém vyřešilo vypnutí proxy cache z naší strany.

Zpravidla stačí vypnutí proxy cache zadat v .htaccessu podle tohoto návodu, ale pokud toto řešení nefunguje, může cache vypnout či znovu zapnout podpora. Žádosti posílejte přes formulář, uveďte název webhostingu.

Role: Podpora Web: https://kb.wedos.com Vizitka: WEDOS Specialista na Znalostní bázi
MB313456 Vybral nejlepší odpověď 19. 10. 2022
Prohlížíte 1 ze 1 odpovědí, klikněte zde pro zobrazení všech odpovědí.