我正在尝试以下重写规则:
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。
答案1
改成。break
last
因为新的 URL 需要由不同的 进行处理location
,所以您需要让 nginx 重新启动对新的重写 URL 的处理,这仅last
在rewrite
规则中使用时才会完成。
看文档以获得更详细的解释。