Still confused with try_files

mike mike503 at gmail.com
Fri Mar 20 06:53:18 MSK 2009


2009/3/19 Igor Sysoev <is at rambler-co.ru>:
> On Mon, Mar 16, 2009 at 09:44:30PM -0700, mike wrote:
>
>> for a site with multiple "if file does not exist, use this master
>> controller file" like wordpress, drupal, etc, does a config like this
>> make sense?
>>
>> because right now, it doesn't.
>>
>> the /blog one does, but the /second one doesn.t
>>
>> server {
>>         listen 80;
>>         server_name proto.foo.net;
>>         index index.php index.html;
>>         root /home/proto/web/proto.foo.net;
>>         include /etc/nginx/defaults.conf;
>>         include /etc/nginx/expires.conf;
>>         location /blog {
>>                 error_page 404 = /wordpress/index.php?q=$request_uri;
>>         }
>>         location /second {
>>                 try_files $uri $uri/ /second/controller.php?slug=$request_uri;
>>         }
>>         location ~ \.php$ {
>>                 fastcgi_pass 127.0.0.1:11020;
>>         }
>> }
>>
>>
>> 2009/03/16 21:40:29 [error] 29669#0: *638 rewrite or internal
>> redirection cycle while internal redirect to
>> "/second/controller.php?slug=/second/contro", client: 123.5.226.17,
>> server: proto.foo.net, request: "GET /second/contro HTTP/1.1", host:
>> "proto.mikehost.net"
>>
>> I really want to use try_files as I believe it is better than using
>> error_page 404 and if ( !-e $request_filename) type stuff, right? All
>> I need is to understand the routing better and I'll be on my way. :)
>>
>> I guess it makes sense about the internal redirection cycle but how
>> else can I route only requests to the prefix of /second to that
>> application's controller?
>
> The attached patch should fix the bug.

Seems to work now.

Approved: patch.try_files.0.7.43

:)





More information about the nginx mailing list