Mein Nginx Rewrite lädt die PHP-Datei herunter

12

Ich habe die folgende Umschreiberegel, die ich versuche:

            location / {
                    index index.php index.html;
                    rewrite  ^/test$  /test.php  break;
            }

Und ich habe auch:

            location ~ \.php$ {
                    fastcgi_pass    127.0.0.1:9000;
                    include         fastcgi_params;
                    fastcgi_param SCRIPT_FILENAME /home/sites/default$fastcgi_script_name;
                    fastcgi_index   index.php;
            }

Normale PHP-Dateien funktionieren einwandfrei, aber es scheint, dass meine Weiterleitung nur die PHP-Datei herunterlädt, zu der ich umleite, anstatt sie zu analysieren.

Was vermisse ich? Ich musste die Datei laden, anstatt sie herunterzuladen, indem ich das FastCGI-Zeug in den ersten Adressblock legte, aber es wurde immer noch nicht als PHP analysiert.

willdanceforfun
quelle

Antworten:

24

Wechseln Sie breakzu last.

Da die neue URL von einer anderen verarbeitet werden locationmuss, muss die Verarbeitung für die neue umgeschriebene URL von nginx neu gestartet werden. Dies ist nur bei Verwendung lastin der rewriteRegel erforderlich .

Weitere Informationen finden Sie in den Dokumenten .

Michael Hampton
quelle
@TamasKalman Eh? Du siehst nicht aus wie das OP. Wenn Sie ein Problem haben, können Sie eine neue Frage stellen.
Michael Hampton