2014-09-29 119 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期待的目錄結構不匹配。愚蠢的......但是,然後所有的硬錯誤通常都有一個愚蠢的因素。 :)