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?
On Mon, Mar 16, 2009 at 09:44:30PM -0700, mike wrote:
server_name proto.foo.net;
location ~ \.php$ {
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?
I tried this patch together with the 0.6.3.5 try_files patch and I get
the following log message now:
2009/03/19 14:30:10 [error] 2795#0: *43 rewrite or internal
redirection cycle while internal redirect to
“/members/index.php?q=/members/user/register”, client: 89.236.30.115,
server: themansion.mine.nu, request: “GET /members/user/register
HTTP/1.1”, host: “themansion.mine.nu”
It looks like the $request_uri; contains the directory (/members/).
How can this be removed? Drupal expects a redirect to
“/members/index.php?q=user/register”.
On Thu, Mar 19, 2009 at 02:54:53PM +0100, Otto Bretz wrote:
HTTP/1.1", host: “themansion.mine.nu”
It looks like the $request_uri; contains the directory (/members/).
How can this be removed? Drupal expects a redirect to
“/members/index.php?q=user/register”.
server {
        try_files $uri $uri/ /second/controller.php?slug=$request_uri;
server: proto.foo.net, request: “GET /second/contro HTTP/1.1”, host:
The attached patch should fix the bug.
Seems to work now.