Setting Nginx untuk WordPress memang sedikit tricky. Salah setting sedikit malah gak jalan atau lebih parahnya terjadi redirect berulang-ulang sampai sitemu tidak bisa diakses.
Ini yang saya alami ketika saya setup WordPress menggunakan CloudFlare. Entah mengapa terjadi too many redirect
pada saat saya mengakses /wp-admin
atau wp-login.php
. Padahal settingan saya sudah benar dan sudah dipakai dibeberapa site yang pernah saya setup.
Untuk tulisan setup WordPress dengan Nginx kamu bisa cari di sini: Setup WordPress dengan Nginx
Cara pertama yang saya lakukan adalah memasang dua konfirgurasi berikut di wp-config.php
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
Konfirgurasi di atas adalah cara WordPress untuk memaksa agar menggunakan https
. Meskipun sudah diset, saya masih tetap mengalami too many redirect
.
Curiga sepertinya ada yang kurang dengan settingan Nginx saya. Pas googling ternyata saya dapat solusi tepat dari Stackoverflow pada tautan ini https://stackoverflow.com/questions/44242267/nginx-wordpress-gives-err-too-many-redirects
Di sana saya cukup tambahkan settingan mirip yang ada ditautan di atas.
Dengan menambahkan flagging untuk https
map $http_x_forwarded_proto $https_flag {
default off;
https on;
}
location ~ \.php$ {
...
fastcgi_param HTTPS $https_flag;
...
}
...
Jadi kira-kira seperti ini.
map $http_x_forwarded_proto $https_flag {
default off;
https on;
}
server {
listen 80;
listen 443;
server_name example.com;
root /var/www/html;
index index.php;
location /blog {
try_files $uri $uri/ /blog/index.php?$args;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_param HTTPS $https_flag;
fastcgi_pass php;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
Dan akhirnya gak too many redirect lagi site saya .. 🥳
Komentar