Cara mengaktifkan Search Engine Friendly URLs MyBB pada Nginx

Saya sedang mengemban tugas untuk membangun forum menggunakan MyBB untuk salah satu klien saya. Enaknya pakai CMS tidak banyak yang perlu kita setting tapi rata – rata kasusnya sama kalau menggunakan Nginx: Fitur permalink atau friendly url tidak ada namanya htaccess. Jadi solusinya harus edit konfigurasi Nginx langsung agar bisa pakai link yang ramah manusia. 😀

Disini saya baru saja menginstall MyBB 1.8.8 dan yang saya modifikasi adalah konfigurasi dari virtual hosting forumnya. Tinggal anda letakkan dalam blok server{} saja:

location / {
    rewrite ^/forum-([0-9]+)\.html$ /forumdisplay.php?fid=$1;
    rewrite ^/forum-([0-9]+)-page-([0-9]+)\.html$ /forumdisplay.php?fid=$1&page=$2;
    rewrite ^/thread-([0-9]+)\.html$ /showthread.php?tid=$1;
    rewrite ^/thread-([0-9]+)-page-([0-9]+)\.html$ /showthread.php?tid=$1&page=$2;
    rewrite ^/thread-([0-9]+)-lastpost\.html$ /showthread.php?tid=$1&action=lastpost;
    rewrite ^/thread-([0-9]+)-nextnewest\.html$ /showthread.php?tid=$1&action=nextnewest;
    rewrite ^/thread-([0-9]+)-nextoldest\.html$ /showthread.php?tid=$1&action=nextoldest;
    rewrite ^/thread-([0-9]+)-newpost\.html$ /showthread.php?tid=$1&action=newpost;
    rewrite ^/thread-([0-9]+)-post-([0-9]+)\.html$ /showthread.php?tid=$1&pid=$2;
    rewrite ^/post-([0-9]+)\.html$ /showthread.php?pid=$1;
    rewrite ^/announcement-([0-9]+)\.html$ /announcements.php?aid=$1;
    rewrite ^/user-([0-9]+)\.html$ /member.php?action=profile&uid=$1;
    rewrite ^/archive/index.php/forum-([0-9]+)\.html$ /archive/index.php?forum-$1.html;
    rewrite ^/archive/index.php/thread-([0-9]+)\.html$ /archive/index.php?thread-$1.html;
    rewrite ^/archive/index.php/forum-([0-9]+)-([0-9]+)\.html$ /archive/index.php?forum-$1-$2.html;
    rewrite ^/archive/index.php/thread-([0-9]+)-([0-9]+)\.html$ /archive/index.php?thread-$1-$2.html;
    }

Setelah itu restart saja Nginx dan selesi sudah urusannya. 🙂 Oh ya, ini saya asumsikan lokasi instalasi forumnya adalah pada domain utama (misal: nama_domain.com bukannya nama_domain.com/forum/), kalau berbeda maka adaptasikan kode location{} agar sesuai.

Tinggalkan komentar