私が試している次の書き換えルールがあります:
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として解析されませんでした。
break
をlast
に変更します。
新しいURLは別のlocation
で処理する必要があるため、last
ルールでrewrite
を使用する場合にのみ、新しい書き換えられたURLに対してnginxの再起動処理を行う必要があります。
より詳しい説明は the docs を参照してください。