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.