Mach zum Test die Gegenprobe: Schreibe eine Problemzeile einmal direkt ohne IfModule rundherum rein. Wenn der Befehl nicht erlaubt ist, wirst Du einen HTTP Error auslösen und eventuell im Errorlog mehr Details finden.
Habe heute morgen mal intensiv rumgetestet. Also an der .htaccess liegt es nicht. Wenn ich alle IfModule entferne, klappt noch alles.
Die Ursache, warum einige Sachen nicht gesetzt werden bzw. beim Browser ankommen ist der Reverse Proxy. Also die Kombination aus nginx und Apache. Dernginx scheint einige HTTP Header vom Apache zu entfernen.
Wenn ich die Option:
"Intelligente Bearbeitung statischer Dateien: Wenn ausgeschaltet, werden alle Abfragen statischer Dateien von Apache bearbeitet. Nginx wird Abfragen und Antworten dann ohne Modifikation weitergeben. Schalten Sie diese Option bitte nur zur Problembehebung aus."
ausschalte werden die Header alle gesetzt (auch HSTS).
Wenn ich Apache mit der Option:
"Proxymodus: Nginx leitet Anfragen über Proxys an Apache weiter. Deaktivieren, um Apache nicht mehr zu verwenden."
wird auch kein HSTS gesetzt (da natürlich keine .htaccess und Apache mehr läuft).
Die erst genannte Option sollte man ja eigtl. nicht ausschalten. Aber warum? Mir wäre HSTS und andere Header wichtiger, als die Performance durch ein nginx Caching. Kann man nginx komplett abschalten bzw. den Apache und nginx so konfigurieren wie den Apache?
Eine andere Option wäre noch über die Einstellung "Statische Dateien direkt durch nginx bedienen" einfach einen entrag mit "xxx" (leerer Eintrag geht nicht) zu machen und somit alle anderen Dateien vom Apache bedienen zu lassen. Was meint ihr?