Bagaimana Agar NGINX dan Jekyll Berjalan Lancar Dengan Clean URL?

Sewaktu saya menggunakan Jekyll dengan Web Server NGINX (baca: enjin X / Ngingg 😂), saya mendapati problem url untuk artikel tidak bisa dibuka. Hal ini disebabkan oleh clean url, yang biasanya domain.com/artikel.html sekarang jadi domain.com/artikel tanpa dot html. Ini yang membuat NGINX pusing dan mengeluarkan 404 Not Found. Karena Nginx gak tau file html mana yg harus di-request.

Solusinya tinggal tambahkan kode berikut di konfig NGINX bagian blok server :

1
2
3
4
5
6
7
8
9
10
11
if (!-f "${request_filename}index.html") {
rewrite ^/(.*)/$ /$1 permanent;
}

if ($request_uri ~* "/index.html") {
rewrite (?i)^(.*)index\.html$ $1 permanent;
}

if ($request_uri ~* ".html") {
rewrite (?i)^(.*)/(.*)\.html $1/$2 permanent;
}

Oke sudah, ternyata setelah jalan dan saya masukkan url ngawur, seharusnya 404.html keluar, namun ini tidak. Malah kembali ke halaman home. Maka solusinya tambahkan di bagian location seperti berikut :

location / {
try_files $uri.html $uri $uri/ /404.html;
}

BONUS TIPS : Ini untuk jekyll, daripada root dokumen web servernya masih di /var/www/html ganti saja ke ~/folderjekyll/_site

Baik sekian dulu dari saya, terimakasih