<bd9320b30903162144y3be5cf8eo4748cf2fceca3f49@mail.gmail.com> <20090319102422.GC40316@rambler-co.ru>
2009/3/19 Igor Sysoev <is@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
:)