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