Ngnix - Verzeichnisschutz macht komische Sachen

Ich habe folgende Zeile in der nginx.conf:
location ^~ /internes/ {auth_basic „Restricted“;auth_basic_user_file /var/www/.htpasswd; }

Das funktioniert auch gut, allerdings tritt folgendes Problem auf. Wenn ich nun eine php-Datei in dem Verzeichnis aufrufe, dann wird sie nicht ausgeführt, sondern heruntergeladen. Sobald ich die obige Zeile auskommentiere, funktioniert alles wieder einwandfrei.
Wenn ich nun das ^ weglasse, dass die Zeile so aussieht:
location ~ /internes/ {auth_basic „Restricted“;auth_basic_user_file /var/www/.htpasswd; }
Dann wird die php auch wieder ausgeführt, aber man kann nun im geschützten Verzeichnis einzelne Dateien direkt aufrufen - man kann also nicht ohne Passwort www.domain.de/internes aufrufen, aber man kann www.domain.de/internes/bild1.jpg zugreifen.

Hat jemand eine Idee, wie ich das gesamte Verzeichnis samt Inhalt schützen kann und dennoch die php ganz normal läuft?

Hallo!

Zur tatsächlichen Beantwortung der Frage, wäre es zusätzlich noch gut zu wissen, wie die location-Direktive für den PHP Interpreter aussieht. Und eventuell andere location-Direktiven sowie deren Reihenfolge in der Konfiguration.

Dein erster Versuch wird auf alle URIs angewendet, die mit dem String „/internes“ beginnen. Dieser Block wird ausgewählt, wenn es keine Direktive, ohne bei denen mit regulären Ausdrücken zu suchen, mit längerem String gibt.
Dein zweiter Versuch ist einfach ein regulärer Ausdruck nach dem in der URI gesucht wird. Hier kommt es dann drauf an, ob danach noch weitere Direktiven stehen.

mfg
christoph