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.
--
Igor Sysoev
http://sysoev.ru/en/
Attachments:
open |
download -
patch.try_files.0.7.43
(2.2 KB)