web-dev-qa-db-ja.com

私のnginxリライトはphpファイルをダウンロードしています

私が試している次の書き換えルールがあります:

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

そして私も持っています:

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

通常のphpファイルは問題なく動作しますが、私のリダイレクトは解析するのではなく、リダイレクト先のphpファイルをダウンロードするだけのようです。

何が欠けていますか?最初のロケーションブロックにfastcgiを配置してダウンロードする代わりに、ファイルをロードしましたが、それでもphpとして解析されませんでした。

12
willdanceforfun

breaklastに変更します。

新しいURLは別のlocationで処理する必要があるため、lastルールでrewriteを使用する場合にのみ、新しい書き換えられたURLに対してnginxの再起動処理を行う必要があります。

より詳しい説明は the docs を参照してください。

24
Michael Hampton