Rewrite or internal redirection cycle?
Igor Sysoev
igor at sysoev.ru
Fri May 20 09:34:36 MSD 2011
On Thu, May 19, 2011 at 09:20:55AM -0400, TECK wrote:
> Hi,
>
> I'm having a bit of an issue with the rewrite scheme:
>
> server {
> ...
> location / {
> try_files $uri $uri/ @data;
> }
>
> location @data {
> rewrite ^ /data.php$is_args;
> internal;
> }
> ...
> }
>
> When I access this request:
> http://domain.com/information/feedback/?order=desc&sort=date
>
> I get an internal redirection cycle:
> *1 rewrite or internal redirection cycle while processing "/data.php?",
> client: IP, server: domain.com, request: "GET
> /information/feedback/?order=desc&sort=date HTTP/1.1", host:
> "domain.com", referrer: "http://domain.com/information/feedback/"
>
> However, if I access this request:
> http://domain.com/information/feedback/400028-some-information.html
>
> Everything works properly. What do you recommend to do, in order to
> troubleshoot the issue?
> My goal is to actually log what goes wrong with the php code, when the
> redirection cycle is encountered.
>
> Thanks for your help.
You should either add "break" to stop internal redirection cycle:
location @data {
rewrite ^ /data.php$args break;
}
or should define /data.php in try_files
location / {
try_files $uri $uri/ /index.php?$args;
}
or (my favorite) should define exactly what nginx should do in @data:
location @data {
fastcgi_pass ...
fastcgi_param SCRIPT_FILENAME /path/to/data.php;
...
}
The later way looks more complex at the first sight, but it creates
independed locations and allows configuration to grow at very large scale.
--
Igor Sysoev
More information about the nginx
mailing list