La mia riscrittura di nginx sta scaricando il file php


12

Ho la seguente regola di riscrittura che sto provando:

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

E ho anche:

            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;
            }

I normali file php funzionano bene, ma sembra che il mio reindirizzamento stia semplicemente scaricando il file php a cui sto reindirizzando, anziché analizzarlo.

Cosa mi sto perdendo? Ho ottenuto il file da caricare, invece di scaricarlo inserendo le cose fastcgi nel primo blocco di posizione, ma non ha ancora analizzato come php.

Risposte:


24

Cambia breakin last.

Poiché il nuovo URL dovrà essere elaborato da un altro location, è necessario riavviare l'elaborazione nginx per il nuovo URL riscritto, che viene eseguito solo quando si utilizza lastnella rewriteregola.

Vedi i documenti per una spiegazione più completa.


@TamasKalman Eh? Non sembri il PO. In caso di problemi, è possibile porre una nuova domanda.
Michael Hampton
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.