CakePHP项目中的nginx错误“重写或内部重定向循环”

I have created a default CakePHP 2.4 project and created the Nginx configuration as follows but I am getting these errors from Nginx error log. What I have done wrong?

My environment:

  • Debian (wheezy)
  • nginx/1.2.1
  • project directory /var/www/backhaus

The error is:

$ 2014/06/14 09:39:22 [error] 5952#0: *1 rewrite or internal redirection cycle while processing "/backhaus", client: xxx.x.x.xx, server: azazel, request: "GET /backhaus HTTP/1.1", host: "azazel"

Here is my config from ../sites-available/default:

location /backhaus {
   root /var/www/backhaus/app/webroot/;
   index index.php;
   rewrite ^/* /backhaus;
   location ~ ^/(.+\.php)$ {
           try_files $uri $uri/ =404;
           include /etc/nginx/fastcgi_params;
           fastcgi_pass unix:/var/run/php5-fpm.sock;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
 }

Your error is this:

$ 2014/06/14 09:39:22 [error] 5952#0: *1 rewrite or internal redirection cycle while processing "/backhaus", client: xxx.x.x.xx, server: azazel, request: "GET /backhaus HTTP/1.1", host: "azazel"

And the error clearly states:

…redirection cycle while processing "/backhaus"…

So now, let’s look at your posted Nginx config:

location /backhaus {
  root /var/www/backhaus/app/webroot/;
  index index.php;
  rewrite ^/* /backhaus;
  location ~ ^/(.+\.php)$ {
          try_files $uri $uri/ =404;
          include /etc/nginx/fastcgi_params;
          fastcgi_pass unix:/var/run/php5-fpm.sock;
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }
}

It seems like the issue is your location is /backhaus but then you are redirecting any traffic going to /backhaus to /backhaus via this line:

rewrite ^/* /backhaus;

So I would recommend just removing that rewrite line.