gbest0
By:
gbest0

ERR_TOO_MANY_REDIRECTS After Updating to Ubuntu 16.04

September 13, 2017 137 views
Drupal Nginx Server Optimization Ubuntu 16.04

Hello,

After updating to Ubuntu 16, my website now has an issue with ERRTOOMANY_REDIRECTS. The website worked fine before the upgrade (It is running Drupal). NGINX -t returns the syntax is okay and the test was successful. Recovering from a backup also does not fix the problem.

Below I have my sites enabled file

server {
    server_name example.com www.example.com;
    #return 301 $scheme://www.example.com$request_uri;
    root /root/to/dir;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16;
        deny all;
    }

    location ~ \..*/.*\.php$ {
    #    return 403;
    }

    location ~ sites/default/files/.*php {
    #   return 403;
    }

    location ~ ^/sites/.*/private/ {
    #    return 403;
    }

    # Allow "Well-Known URIs" as per RFC 5785
    location ~* ^/.well-known/ {
        allow all;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/)\. {
        return 403;
    }

    location / {
        # try_files $uri @rewrite; # For Drupal <= 6
         try_files $uri /index.php?$query_string; # For Drupal >= 7
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }

    location ~* /sites/.*/files/styles/ {
            access_log off;
            expires 30d;
            try_files $uri @rewrite;
    }

    # Don't allow direct access to PHP files in the vendor directory.
    location ~ /vendor/.*\.php$ {
        deny all;
        return 404;
    }

    # In Drupal 8, we must also match new paths where the '.php' appears in the middle,
    # such as update.php/selection. The rule we use is strict, and only allows this pattern
    # with the update.php front controller.  This allows legacy path aliases in the form of
    # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
    # any paths like that, then you might prefer to use a laxer rule, such as:
    #   location ~ \.php(/|$) {
    # The laxer rule will continue to work if Drupal uses this new URL pattern with front
    # controllers other than update.php in a future release.
    location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    # Fighting with Styles? This little gem is amazing.
    #location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
        try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

I understand it is in an endless loop of redirects but I cannot find the culprit.

Any help would be greatly appreciated

Thanks

1 comment
  • My error log is displaying this

    "2017/09/13 07:21:33 [error] 3478#3478: *235 directory index of "/root/to/dir/" is forbidden, client: 100.00.000.000, server: _, request: "HEAD / HTTP/1.0"

    Which looks like it would be a permissions issue but the directory is set to 755

Be the first one to answer this question.