nginx错误"重写或内部重定向周期"在CakePHP项目上

时间:2014-06-14 07:59:28

标签: php cakephp nginx

我创建了一个默认的CakePHP 2.4项目并创建了Nginx配置如下,但是我从Nginx错误日志中得到了这些错误。我做错了什么?

我的环境:

  • Debian(wheezy)
  • 的nginx / 1.2.1
  • 项目目录/ var / www / backhaus

错误是:

  

$ 2014/06/14 09:39:22 [错误] 5952#0:* 1处理“/ backhaus”时重写或内部重定向循环,客户端:xxx.xxxx,服务器:azazel,请求:“GET / backhaus HTTP / 1.1“,主持人:”azazel“

以下是我../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;
   }
 }

1 个答案:

答案 0 :(得分:1)

您的错误是:

  

$ 2014/06/14 09:39:22 [错误] 5952#0:* 1重写或内部   处理“/ backhaus”时的重定向循环,客户端:xxx.x.x.xx,   服务器:azazel,请求:“GET / backhaus HTTP / 1.1”,主持人:“azazel”

错误明确指出:

  

...处理“/ backhaus”时的重定向循环......

现在,让我们来看看你发布的Nginx配置:

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

问题似乎是location/backhaus,但您通过此行重定向到/backhaus/backhaus的所有流量:

rewrite ^/* /backhaus;

所以我建议只删除rewrite行。