Hallo Survival,
ich bin kein nginxeer und habe auf Dedlfix gehofft, der nginx-Kenntnisse hat.
Vor allem hat er das passende Zitat 😜.
Dem bin ich gefolgt und habe mich an Hand des nginx 1.12 unserer Selfhtml Offline-Installation in nginx etwas eingelesen - und ich würde behaupten: In deiner Rewrite-Zeile ist nichts falsch, der Fehler muss anderswo liegen.
Ich musste trotz Handbuchlektüre noch eine Weile basteln, bis ich kapiert hatte was ich da eigentlich tat, d.h. ich musste mein Tun überprüfen, ich musste herausfinden, was gerade eigentlich falsch ist, ich musste DEBUGGEN.
Und damit sind wir beim Problem: "funktioniert nicht" funktioniert nicht als Fehlerbeschreibung.
nginx schreibt Fehler auf die Konsole, in eine Error-Logdatei und in eine Access-Logdatei. Das kann man in der nginx.conf aktivieren (error_log und access_log Direktiven). Welchen Aufschluss geben diese Quellen über das Problem, das Du mit deinem Rewrite hast?
Steht deine index.php übrigens im / oder im /img Ordner des Web? Ich weiß nicht genau, wie .htaccess Dateien hier zu lesen sind.
Und eine Grundsatzfrage, die aber mit deinem Fehler nichts zu tun hat:
Was soll das: ^(.*\.png(/.*)?)$
? Hat da jemand beim Aufbau der Apache Rewrite-Rules stumpf eine Rewrite-Role für PHP Scripte kopiert, ohne nachzudenken? Da wird ein mögliches Suffix hinter .png zusätzlich gematcht, was bei Bilddateien eher ungewöhnlich ist. Es würde vermutlich niemand eine /img/foo.png/abc
abrufen - es sei denn, dein Cache-Buster arbeitet auf diese Weise. Aber in dem Fall würde man doch den /abc Teil eher wegstrippen, weil andernfalls die Ressource gar nicht gefunden wird. Deine Rewrite-Rule übernimmt ihn aber einfach.
Rolf
sumpsi - posui - obstruxi