htaccess, mod_rewrite dan permalink
htaccess adalah file konfigurasi untuk mengontrol web server apache, mod_rewrite adalah rewrite engine yang di gunakan oleh web server untuk modifikasi alamat web (url) sebelum diakses. sedangkan permalink adalah alamat web alias untuk mengakses alamat web yang panjang atau rumit.
Kadang, sebagian dari anda pernah menjumpai alamat web http://alamat.web/login.php?user=me atau http://alamat.web/login/me.php yang kita tidak tahu variabel apa yang dikirim, dan kedua alamat tersebut sebernarnya mengarah pada satu file yang sama.
Hal pertama yang perlu di cek adalah web server apache yang anda gunakan apakah sudah mendukung htaccess dan mod_rewrite. buka file /usr/local/apache2/conf/httpd.conf atau /etc/httpd/conf/http.conf tergantung OS yang digunakan, contoh diatas adalah FreeBSD dan Fedora.
vi /usr/local/apache2/conf/httpd.conf
cari baris #Load Module rewrite_module modules/mod_rewrite.so hilangkan tanda # sehingga menjadi Load Module rewrite_module modules/mod_rewrite.so
kemudian cari baris AccessFileName .htaccess dan AllowOveride None, None di ubah menjadi All sehingga menjadi AllowOveride All. Resrtart apache
/usr/local/etc/rc.d/apache.sh restart
Sekarang buat file .htaccess di root directory web
vi .htaccess
Masukkan kode berikut
#mengaktifkan mod_rewrite
RewriteEngine on
#make dinamik rewrite
RewriteRule ^login/([^/]+)/([^/]+).html /login.php?action=$1&user=$2 [NC]
Simpan dan keluar
tanda ([^/]+) adalah regular expression(regex), apache akan merubah regex menjadi variable dalam hal ini $1, karena regexnya ada 2 maka variabel yang di tangkap juga ada 2, yaitu $1 dan $2. Sehingga dengan menggunakan htaccess dan mod_rewrite diatas alamat web dari
http://myweb/login.php?action=baca&user=wa2n
akan menjadi
http://myweb/login/baca/wa2n
selamat mencoba
~wa2n