How to remove the "IF" in this fcgi config

Igor Sysoev igor at sysoev.ru
Thu Feb 21 17:54:45 UTC 2013


On Feb 21, 2013, at 21:48 , Ed W wrote:
> Hi, I'm trying to setup a php app using fpm (owncloud).
>> I am trying to match urls which can all over the filesystem and of the form: something.php/some/path?params
>> So far I have something like this:
>>> location / {
> try_files $uri $uri/ index.php;
> }
>> location ~ ^(?P<script_name>.+\.php)(/|$) {
> fastcgi_split_path_info ^(.+\.php)(/.*)$;
> if (!-f $script_name) {
> #return 404;
> break;
> }
> include fastcgi2.conf;
> fastcgi_pass 127.0.0.1:9000;
> }
>> where:
> fastcgi2.conf is a copy of fastcgi.conf with one change:
> fastcgi_param REQUEST_URI $uri$is_args$args;
>>> How do I avoid using an IF here to check that the php file really exists? Also, why does uncommenting the return 404 cause some kind of breakage (not even sure I understand exactly what happens? Seems like the paths get broken?)

 location ~ ^(?<script_name>.+\.php)(?<path_info>/|$) {
 try_files $script_name =404;
 include fastcgi2.conf;
 fastcgi_param PATH_INFO $path_info;
 fastcgi_pass 127.0.0.1:9000;
 }
--
Igor Sysoev
http://nginx.com/support.html


More information about the nginx mailing list

AltStyle によって変換されたページ (->オリジナル) /