某些URL不通过PHP-FPM

时间:2013-10-30 20:34:05

标签: nginx rewrite php

我在使用PHP RESTful API设置我的nginx服务器时遇到了很多麻烦。我的server{}块中有以下块:

location / {
  rewrite ^/v1/* /v1/api.php last;
  rewrite ^/* /index.php last;
}

location * .*\.php$ {
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_pass 127.0.0.1:9000;
}

然而......这些似乎没有正常运作。基本上,我希望将每个以/v1/开头的网址重写为/v1/api.php,将其他任何内容重写为/index.php

这似乎部分有效。有时它实际上会转到api.php,但有时它似乎只是下载文件而不是通过PHP-FPM处理它。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

下载文件意味着没有传递给php引擎,所以我认为问题在于该块定义 取代

location * .*\.php$ {

location ~ \.php$ {

可能它会起作用。