119 lines
3.0 KiB
Markdown
119 lines
3.0 KiB
Markdown
# 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:
|
|
|
|
```nginx
|
|
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:
|
|
|
|
```bash
|
|
curl -I https://retribusi.btekno.cloud/index.php
|
|
```
|
|
|
|
Jika ada banyak `Location:` headers, berarti ada redirect loop di server.
|
|
|
|
### 5. Cek Log Nginx
|
|
|
|
```bash
|
|
tail -f /var/log/nginx/retribusi_error.log
|
|
```
|
|
|
|
Lihat apakah ada error atau redirect yang berulang.
|
|
|
|
## Konfigurasi yang Benar
|
|
|
|
### Nginx (Production)
|
|
|
|
```nginx
|
|
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)
|
|
|
|
```apache
|
|
<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
|
|
|