Bagaimana Cara 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 :
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