Problem with rewrite or internal redirection cycle

drakerc nginx-forum at
Wed Jul 18 15:55:49 UTC 2012


I have recently moved my website from Litespeed to nginx. I had to
change some lines in my PHP script to use x-sendfile function and
because of it I also had to change my nginx config. Unfortunately, when
I'm executing my PHP script, I receive 500 Internal Server Error. My
error.log says:

2012/07/18 17:39:52 [error] 23510#0: *20011855 rewrite or internal
redirection cycle while internal redirect to "/index.php", client:, server:, request: "GET [...]

I'm not sure what's causing this problem and how to fix it and I really
need your help.

My nginx website's config:
server {
        listen 80;
        server_name_in_redirect off;
        client_max_body_size 1024m;
        access_log /home/log/nginx/localhost.access_log;
        error_log /home/log/nginx/localhost.error_log;
        send_timeout 180;
        root /home/;
        index index.php;
        # Support Clean (aka Search Engine Friendly) URLs
        location / {
        client_max_body_size 1024m;
        try_files $uri $uri/ /index.php?q=$uri&$args;
        proxy_read_timeout 120;
        send_timeout 180;
        autoindex on;

        index index.php index.html index.htm default.html default.htm;
        # deny running scripts inside writable directories
        location ~*
/(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
                return 403;
                #error_page 403 /403_error.html;

        location ~ .*.php$ {
            include /etc/nginx/fastcgi_params;
fastcgi_connect_timeout 320;

fastcgi_read_timeout 320;
client_max_body_size 1024m;
            fastcgi_index index.php;
            include fastcgi_params;
send_timeout 180;
            fastcgi_param SCRIPT_FILENAME

location /downloads {

        # caching of files
        location ~* \.(ico|pdf|flv)$ {
                expires 1y;

        location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
                expires 14d;


My PHP script snippet that uses x-sendfile:

$filename_directoo = '/'.$cat_dir.'/'.$file_url;
header('Content-Disposition: attachment; filename="'.$filename.'"');

Posted at Nginx Forum:,228698,228698#msg-228698

More information about the nginx mailing list