Files
Retribusi/TROUBLESHOOTING_REDIRECT.md

3.0 KiB

Troubleshooting ERR_TOO_MANY_REDIRECTS

Penyebab Umum

  1. Konfigurasi Nginx/Apache yang redirect / ke /index.php
  2. .htaccess di root yang melakukan redirect
  3. JavaScript redirect yang menyebabkan loop

Solusi

1. Cek Konfigurasi Nginx

Pastikan di server production, konfigurasi nginx TIDAK melakukan redirect loop:

server {
    root /www/wwwroot/retribusi.btekno.cloud/retribusi/public;
    index index.php index.html;

    location / {
        # JANGAN gunakan redirect ke index.php jika sudah di root
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

PENTING:

  • Document root HARUS di /retribusi/public (bukan /retribusi)
  • JANGAN gunakan try_files $uri $uri/ /index.php?$query_string; di root location

2. Cek .htaccess

Pastikan .htaccess di folder public/ TIDAK melakukan redirect:

  • File .htaccess di public/ sudah benar (tidak ada redirect)
  • Jika ada .htaccess di root, pastikan tidak ada redirect ke index.php

3. Clear Browser Cache

  1. Clear cookies untuk domain retribusi.btekno.cloud
  2. Clear cache browser
  3. Hard refresh (Ctrl+Shift+R atau Cmd+Shift+R)

4. Test Langsung

Test dengan curl untuk melihat redirect chain:

curl -I https://retribusi.btekno.cloud/index.php

Jika ada banyak Location: headers, berarti ada redirect loop di server.

5. Cek Log Nginx

tail -f /var/log/nginx/retribusi_error.log

Lihat apakah ada error atau redirect yang berulang.

Konfigurasi yang Benar

Nginx (Production)

server {
    listen 80;
    server_name retribusi.btekno.cloud;
    
    # Document root HARUS di folder public
    root /www/wwwroot/retribusi.btekno.cloud/retribusi/public;
    index index.php index.html;

    location / {
        # Jangan redirect, langsung serve file
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Apache (Production)

<VirtualHost *:80>
    ServerName retribusi.btekno.cloud
    DocumentRoot /www/wwwroot/retribusi.btekno.cloud/retribusi/public
    
    <Directory /www/wwwroot/retribusi.btekno.cloud/retribusi/public>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Checklist

  • Document root di nginx/apache mengarah ke folder public/
  • Tidak ada redirect di .htaccess di root
  • .htaccess di public/ tidak ada redirect (hanya security headers)
  • Konfigurasi nginx tidak menggunakan try_files ... /index.php di root location
  • Browser cache sudah di-clear
  • Cookies sudah di-clear