Welcome! Log In Create A New Profile

Advanced

Re: try_files php

May 27, 2010 03:28PM
On Thu, May 27, 2010 at 04:14:38PM -0300, Marcos Neves wrote:

> How about this one?
>
> try_files $uri $uri/ $uri.htm $uri.html @php;
>
> location @php {
> rewrite ^.*$ $uri.php;
> }

You do not test laytout files here.
Here is the right configuration:

    location / {
        try_files  $uri $uri/index.htm $uri.htm $uri.html @php;
    }

    location @php1 {
        try_files  $uri.php  =404;
        fastcgi_pass  ...
    }

> Do I need to put try files inside a location / { } ?

You should put it in most specific location.

> Is a good idea use: if (-f $uri.php) {do php handler}

No.

> Marcos Neves
> +55 44 9918-8488
>
>
>
> On Thu, May 27, 2010 at 4:04 PM, Igor Sysoev <igor@sysoev.ru> wrote:
> > On Thu, May 27, 2010 at 03:13:32PM -0300, Marcos Neves wrote:
> >
> >> How can I reproduce this behavior:
> >>
> >> with a request to /foo/bar
> >>
> >> try file: foo/bar
> >> try index.htm: foo/bar/
> >> try file: foo/bar.htm
> >> try file: foo/bar.html
> >> try parse php: foo/bar.php
> >> try file: /layout.htm
> >> try file: /layout.html
> >> try parse php: /layout.php
> >> return 404 if not found.
> >>
> >> I try this:
> >>
> >>     location / {
> >>       try_files $uri $uri/ $uri.htm $uri.html $uri.php layout.htm
> >> /layout.html /layout.php;
> >>     }
> >>
> >> Everything works, except PHP that returns as text file showing the source code.
> >>
> >> ps: Is there a blog post that explain exactly how location, if,
> >> rewrite and try_files works?
> >> The docs are not so clear about how the flow works.
> >
> > You can not mix different handlers: static and php, in one try_files.
> > My variant is similar to Merlin's:
> >
> >     location / {
> >         try_files  $uri $uri/index.htm $uri.htm $uri.html @php;
> >     }
> >
> >     location @php1 {
> >         try_files  $uri.php  @file1;
> the follow lines are always executed or only when the try_file above
> match $uri.php ?

Yes.

> >         fastcgi_pass  ...
> >     }
> >
> >     location @file1 {
> >         try_files  /layout.htm /layout.html @php2;
> >     }
> >
> >     location @php2 {
> What the =404 below means?

return 404 code as the last resort.

> >         try_files  /layout.php  =404;
> >         fastcgi_pass  ...
> >     }


--
Igor Sysoev
http://sysoev.ru/en/

_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

try_files php

Marcos Neves May 27, 2010 02:18PM

Re: try_files php

mike May 27, 2010 02:32PM

Re: try_files php

Marcos Neves May 27, 2010 02:38PM

Re: try_files php

mike May 27, 2010 02:44PM

Re: try_files php

edogawaconan May 27, 2010 02:44PM

Re: try_files php

☣Merlin May 27, 2010 02:58PM

Re: try_files php

Igor Sysoev May 27, 2010 03:08PM

Re: try_files php

Marcos Neves May 27, 2010 03:18PM

Re: try_files php

Igor Sysoev May 27, 2010 03:28PM

Re: try_files php

Marcos Neves May 27, 2010 03:42PM

Re: try_files php

Igor Sysoev May 27, 2010 03:42PM

Re: try_files php

Marcos Neves May 27, 2010 04:12PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 158
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready