Nginx rewrite to PHP

Hi,

I’m using Nginx linked to PHP using fastcgi proxy (to the FPM module of
PHP
core btw).

I am trying to use some rewrite rules, which apparently work since I get
redirected (HTTP answer 200), but the content is not passed through the
PHP
handler…
I am returned the file for downloading which content is the raw PHP
code!

I am using a configuration like the following:

location / {
rewrite ^/dunno/([^.^/]+)$ /index.php?q=$1 break;
return 404;
}

location ~ .php$ {
// PHP handling there
}

What am I doing wrong?

B. R.

2012/4/22 B.R. [email protected]:

I am using a configuration like the following:

location / {
rewrite ^/dunno/([^.^/]+)$ /index.php?q=$1 break;
return 404;
}

break means the file is handled by current location block (location /
{ }). The one
you want is last.

reference: Module ngx_http_rewrite_module

Thanks Edho,

I also use the official reference first-hand ;o)
From the example given on the Wiki page of the Rewrite module you
quotedhttp://wiki.nginx.org/HttpRewriteModule,
they replace ‘last’ by ‘break’ when rewrite rules put inside a location
block…

Isn’t it a problem to put ‘last’ flags inside the location block? What
is
the 10-cycles-then-500-error referring to?

B. R.

2012/4/22 B.R. [email protected]:

Thanks Edho,

I also use the official reference first-hand ;o)
From the example given on the Wiki page of the Rewrite module you quoted,
they replace ‘last’ by ‘break’ when rewrite rules put inside a location
block…

Isn’t it a problem to put ‘last’ flags inside the location block? What is
the 10-cycles-then-500-error referring to?

The 500 error is cause by the rewrite: it rewrites /download/ (clean
url) to /download/ (actual file). If it use last flag, the /download/
location block will be searched again (and in fact it may return 403
instead of 500 if the rewritten url doesn’t match the rewrite rule
anymore - it’ll return 500 only on certain cases).

The one you want is for it to be handled by different location block
(.php$) - hence last flag.

Well, I didn’t take the required time to understand these examples…
Those are definitely hopefully not to be seen in real config files! ;o)

Thank you for having taken time to explain all that to me.
I just made the change and my requests end up at the right places.

Thanks again!

B. R.