2014-09-29 123 views
0

内部重定向循环我有一个PHP的API,它生活过的URL路径/api和OSX以下配置工作正常:重写或NGINX

location /api { 
    try_files $uri /api/index.php$is_args$args; 
    fastcgi_pass PHP:9000; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include   fastcgi_params; 
} 

在Ubuntu这同一位置的块,但是,似乎导致在:

[错误] 9#0:* 3重写或内部重定向循环而内部重定向到 “/api/index.php”

Ť他是无论我是否明确地打电话http://localhost/api/index.php,使用目录参考http://localhost/api或者如果我通过一个像这样的呼叫一些params传递给index.php脚本:http://localhost/api/actions/recent

谁能帮我理解为什么Ubuntu和OSX可能会有所不同?绕过这个重写错误怎么办?


的OSX和Ubuntu的全部细节可以在这里找到:

https://gist.github.com/ksnyde/80ac9a64a6cb03927838

+0

显示完整配置 – 2014-09-29 10:57:13

+0

添加完整配置。 OSX是单个文件,Ubuntu使用包括类似的结果。 – ken 2014-09-29 12:12:59

+0

在黑暗中拍摄,因为我看不到真正的问题 - 您没有定义错误页面,并且套接字路径指向我在ubuntu上不期望的位置。 – Melvyn 2014-09-30 07:18:21

回答

0

那么我最初的假设:OSX和Ubuntu都表现不同并没有证明的情况。

对我来说,转折点是多了解这个错误的起源。虽然错误的文本并没有完全给出它,但它基本上表明它已经尝试了try_files行中列出的模式的所有变体。事实上,如果没有找到匹配的话,许多人在这样一条线上添加一个= 404以解决更有意义的错误。

一旦我意识到错误实际上是什么意思,它让我意识到传递给FPM的路径和FPM期待的目录结构不匹配。愚蠢的......但是,然后所有的硬错误通常都有一个愚蠢的因素。 :)