CentOS 6.9
Linux 2.6.32-696.10.1.el6.x86_64
Apache/2.2.15

Win 7
WinSCP 5.11.2 portable (internal editor, UTF-8)
PuTTY 0.70 portable

Hallo,
das Auslesen des in der .htaccess gesetzten Cache-Control Headers mit curl funktioniert nur bei html Dateien und nicht bei php Dateien. Beide Dateien sind wie folgt gefüllt.
Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
</body>
</html>
Alle Files (.htaccess, html, php) sind in UTF-8 gespeichert.

In der .htaccess steht folgendes am Anfang.
Code:
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
</IfModule>
Curl liefert folgendes.
Code:
[user@server ~]$ curl -I https://www.example.com/example.html
HTTP/1.1 200 OK
Date: Sat, 16 Dec 2017 11:48:44 GMT
Server: Apache/2.2.15 (CentOS)
Vary: Host
Last-Modified: Sat, 16 Dec 2017 11:36:58 GMT
ETag: "da6376-5d-5607388e88a80"
Accept-Ranges: bytes
Content-Length: 93
Cache-Control: no-cache, no-store, must-revalidate
Connection: close
Content-Type: text/html

[user@server ~]$ curl -I https://www.example.com/example.php
HTTP/1.1 200 OK
Date: Sat, 16 Dec 2017 11:48:46 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.6.3
Connection: close
Content-Type: text/html; charset=UTF-8
HEAD liefert folgendes.
Code:
[user@server ~]$ HEAD https://www.example.com/example.html
200 OK
Cache-Control: no-cache, no-store, must-revalidate
Connection: close
Date: Sat, 16 Dec 2017 12:01:57 GMT
Accept-Ranges: bytes
ETag: "da6376-5d-5607388..."
Server: Apache/2.2.15 (CentOS)
Vary: Host
Content-Length: 93
Content-Type: text/html
Last-Modified: Sat, 16 Dec 2017 11:36:58 GMT
Client-Date: Sat, 16 Dec 2017 12:01:57 GMT
Client-Peer: ...:200:0:...
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
Client-SSL-Cert-Subject: /OU=Domain Control Validated/CN=*.server.example.com
Client-SSL-Cipher: DHE-RSA-AES256-GCM-SHA384
Client-SSL-Socket-Class: IO::Socket::SSL
Client-SSL-Warning: Peer certificate not verified

[user@server ~]$ HEAD https://www.example.com/example.php
200 OK
Connection: close
Date: Sat, 16 Dec 2017 12:01:04 GMT
Server: Apache/2.2.15 (CentOS)
Content-Type: text/html; charset=UTF-8
Client-Date: Sat, 16 Dec 2017 12:01:04 GMT
Client-Peer: ...:200:0:...
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
Client-SSL-Cert-Subject: /OU=Domain Control Validated/CN=*.server.example.com
Client-SSL-Cipher: DHE-RSA-AES256-GCM-SHA384
Client-SSL-Socket-Class: IO::Socket::SSL
Client-SSL-Warning: Peer certificate not verified
X-Powered-By: PHP/5.6.3
Beim curl und HEAD der html Datei fehlt bei Content-Type das charset.
Bei php wird zwar das charset angezeigt, aber vieles andere nicht, darunter das Cache-Control.
Woran könnte das liegen? Liegt das nur an curl und HEAD, oder wird der Header bei php Dateien nicht gesetzt? Wie lese ich den Header dann korrekt aus?

PS: Wenn ich die .htaccess mit notepad++ in UTF-8-BOM speicher, dann wird bei der html und php Datei als charset iso-8859-1 angezeigt, egal ob diese in UTF-8 oder UTF-8-BOM gespeichert sind.