Pernah tidak Anda melihat suatu link seperti ini:
- www.supermall.com/product/detail/cam-12.html
- singsue.wordpress/archive/2006/05/12/suatu_malam_yang_indah.html
- www.detik.com (link yang dimiliki detik.com)
- www.kompas.com (link yang dimiliki kompas.com)
Tentunya link diatas lebih mudah diingat dan dibacanya juga oleh kita sebagai pengunjung, selain itu juga search engine seperti google.com dan yahoo.com akan indexing halaman web menjadi lebih mudah dan sering. Hal ini bisa juga dibilang sebagai salah satu SEO (Search Engine Optimizing) dan cleans URL. Pastinya kita bertanya-tanya bagaimana merubah link yang panjang menjadi begitu simplenya dan tidak perlu menggunakan struktur suatu bahasa pemrograman.
Kita akan coba membahas bagaimana merubah link yang panjang menjadi begitu simple dan clean URL. Jika Anda menggunakan server Apache maka hal ini dapat dilakukan dengan menambah suatu modul yang dibuat oleh Ralf S. Engelschall yaitu mod_rewrite (www.engelschall.com/sw/mod_rewrite).
Mod_rewrite digunakan merubah URL menggunakan perintah-perintah rewriting engine (berdasarkan parser REGEX) yang diminta on the fly (secara langsung). Untuk menggunakan modul ini minimum versi yang dibutuhkan adalah Apache v 1.2 atau versi yang terbaru. Anda dapat menginstall mod_rewrite sebagai modul pada server Anda.
Install mod_rewrite pada Apache
Sebelum menginstall modul ini cek dulu apakah modul ini sudah terinstall apa belum dengan menggunakan phpinfo() jika anda menggunakan php sebagai web programming. Pada bagian Loaded Modules akan tampak modul apa saja yang terinstall, carilah katakata mod_rewrite jika ada maka anda tidak perlu install modul tersebut, jika belum maka persiapkan diri untuk menginstallnya.

Penulis menggunakan Apache/2.0.58, PHP/5.1.4, WAMP bundle server dengan Win XP sebagai system operasinya sehingga akan dijelaskan konfigurasi berdasarkan konfigurasi tersebut. Untuk menginstall modul ini cari file httpd.conf untuk WAMP terdapat pada "C:/wamp/Apache2/ conf/" sedangkan jika anda menggunakan Apache biner cek "C:/apache/conf/". Buka file tersebut dengan editor yang Anda sukai, notepad, wordpad, dreamweaver, dll. Cari baris kata yang mengandung mod_rewrite, file httpd.conf saya kata mod_rewrite terdapat pada baris 165.
123#
124# Dynamic Shared Object (DSO) Support
125#
126# To be able to use the functionality of a module which was built as a DSO you
127# have to place corresponding `LoadModule' lines at this location so the
128# directives contained in it are actually available _before_ they are used.
129# Statically compiled modules (those listed by `httpd -l') do not need
130# to be loaded here.
131#
165# LoadModule rewrite_module modules/mod_rewrite.so
Kemudan hilangkan tanda # pada baris tersebut sehingga menjadi:
165 LoadModule rewrite_module modules/mod_rewrite.so
Simpan file httpd.conf tersebut kemudian restart Apache Anda, maka module mod_ rewrite siap digunakan. Untuk memastikan kembali cek dengan phpinfo().
Menjalankan Misi
Setelah instalasi modul selesai maka selanjutnya adalah membuat agar Apache on the fly merewrite URL kita sesuai keinginan maka harus menulis rule-rule nya dalam file yang namanya ".htaccess", ingat nama filenya ".htaccess" bukan "sesuatu.htaccess" atau "httaccess.httacces". File .htaccess selain untuk menuliskan mod_rewrite bisa juga digunakan untuk proteksi suatu file atau directory dan sebagainya. Cara membuat filenya gampang-gampang saja, buka editor Anda dan save as dengan nama ".htaccess".
Jika anda menghosting ke suatu provider biasanya kita tidak diperbolehkan menggunakan file tipe ini ".htaccess", maka tanya provider anda untuk mengijinkannya dan jelaskan alasannya secara baik-baik. Jika Anda menggunkan di localserver sebagai test maka konfigurasi file ini ada dalam https.conf, cari lokasi direktori dimana Anda meletakkan file-file internet Anda. File internet saya tarus di "E:/hasan/internet" sedangkan untuk konfigurasi awal "C:/apache/htdocs".
253 <Directory "E:/hasan/internet">
267 Options Indexes FollowSymLinks
274 AllowOverride all #yang harus Anda rubah
280 Order Allow,Deny
281 Allow from all
284 </Directory>
Bagian ini untuk membatasi penggunaan ".htaccess" pada server, untuk keamanan biasanya di setting "None" dalam hal ini untuk tes fungsi mod_rewrite maka rubah menjadi "All".
Setelah semua persiapan telah dilakukan maka siap deh bertempur dengan segala kekuatan. Sekarang buka file .htaccess Anda untuk mengecek apakah bisa digunakan dan tulis code dibawah ini lalu save.
Options +FollowSymLinks
RewriteEngine On
RewriteRule google http://www.google.com/? [R,L]
Panggil browser Anda dan ketik localhost/google atau www.namadomain.com/google, jika langsung redirect ke halaman google.com berarti mod_rewrite Anda berjalan sesuai rencana, sekarang tinggal menyesuaikan sesuai kebutuhan Anda.
Setelah menginstall mod_rewrite pada Apache, sekarang kita akan mencoba langsung praktek dengan menuliskan contoh sederhana beserta penjelasan ringan.
Buatlah file .htaccess
Buka editor Anda lalu save dengan nama .htaccess, ingat bukan file.htaccess atau yang lainnya, karena tidak akan dibaca oleh Apache.
Menulis rule mod_rewrite
Bagian ini merupakan hal yang bisa dibilang "mudah" jika Anda sudah biasa 🙂, tapi untuk gampangnya ikutin aja deh. Kita akan mencoba bedah kode dibawah ini.
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^categories/$ index.php?category=categories [L]
Options +FollowSymLinks --MultiViews
Tambahkan perintah ini pada setiap awal perintah, tapi bisa juga tidak.
RewriteEngine On
Perintah ini digunakan untuk mengaktifkan atau non aktifkan runtime pada engine rewrite. Jika di set pada OFF maka module tidak mengeksekusi runtime. Maka set pada ON.
RewriteRule
Perintah ini sebagai perintah yang akan dieksekusi oleh module rewrite, satu Rewriterule merupakan satu perintah sehingga kita dapat menambahkan sesusai kebutuhan kita, bisa tiga, empat atau sembilan. ^
Start of line anchor, awal dari komen perintah.
categories/
hasil dari rewriting yang diinginkan sesuai dengan kebutuhan kita saja. Bisa terlihat menjadi sangat panjang ataupun simple. Pada contoh ini categories dianggap sebagai direktori bukan sebuah nama file, Anda dapat merubahnya menjadi sebuah file dengan perintah : categories.html $ End of line anchor, akhir dari komen perintah.
index.php?category=categories
Merupakan dinamis link awal yang ingin kita buat sederhana, pada contoh ini menggunakan PHP.
[L]
Flag sesuai dengan kebutuhan kita, diawali dengan [ dan diakhiri ]. "L" artinya stop proses dari rewriting dan jangan melakukan rewriting rule lagi.
Simpan file tersebut dan upload ke server Anda, taruh di main directory.
Ubah script yang Anda punya.
Pada bagian ini merupakan bagian yang agak rumit, karena harus merubah script Anda, so pastikan backup dulu file Anda sehingga ketika dibutuhkan lagi masih ada dan dapat dipergunakan lagi. Ingat selalu backup file Anda sebelum merubah.
Link-link yang terdapat dalam script Anda bisa bermacam-macam lokasinya, so Anda harus tahu banyak tentang struktur programmingnya jika Anda menggunakan script orang lain. Lain cerita jika Anda memprograming sendiri. Link-link yang ada biasanya dalam:
Links pada templates file
Anda harus jeli mencari link-link yang ada dan akan dirubah. Beberapa pengembang meletakkan kumpulan linknya dalam bentuk template atau dikumpulkan menjadi satu.
Links pada source file
Beberapa pengembang meletakkan link pada source file nya, seperti index.php, forum. php, function.php dan sebagainya.
Links disembarang tempat
Pengembang / programmer yang seperti ini yang agak berat, karena linknya disembarang tempat, hubungi programmernya untuk minta bantuan.
Rubahlah link yang ada hubungannya dengan index.php?category=categories menjadi categories/ atau categories.html sesuai dengan rulenya. Silahkan buka browser favorit Anda panggil localhost/categories atau localhost/categories.html sesuaikan dengan rule yang telah dibuat. Dan jika anda menggunakan server berbayar silahkan panggil domain Anda dan lokasi filenya (www.namadomain.com/categories atau www.namadomain.com/ categories.html).
Contoh lainnya
Misalkan kita memiliki banyak link seperti berikut:
index.php?category=categories
index.php?category=contact
index.php?category=images
index.php?category=login
index.php?category=logout
index.php?category=new
index.php?category=rss
index.php?category=unpublished
sehingga kita dapat menuliskan rule menjadi
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^ ([a-z]+)/$ index.php?category=$1 [L]
Rewriterule diatas akan merubah link yang ada setelah category menjadi kumpulan abjad ([a-z]+), jika angka dengan ([0-9]). Sehingga jika kita ketik localhost/contact akan dikenal dan dirubah menjadi index.php?category=contact.
Biografi Muh Hasan Tanjung
Dilahirkan di Jakarta 8 maret 1981 dan telah menyelesaikan S1 di Teknik Elektro - Universitas Gadjah Mada, Jogjakarta tahun 2004. Selama kuliah hobi dengan dunia komputer terutama internet, sehingga pernah menggerjakan proyek pembuatan web dengan menggunakan ASP, PHP, MySql dan Access. Proyek perdananya adalah membuat web Bulaksumur Pos sebuah media komunitas mahasiswa UGM dengan ASP dan Access, kemudian Kick Off. Projek lainnya adalah membuat website MLM Acintya.net dan dilanjutkan dengan Ayudya.net dan Javaart.net (situs penjualan handycraft melalui web). Selain itu penulis juga sedang mengembangkan Sistem Informasi Klinik web based.
Selain sebagai pegawai sebuah perusahaan swasta yang bergerak dibidang manufaktur (Spv. Produksi), tidak menyurutkan minatnya dalam mendalami dan mengembangkan pengetahuan tentang web programming. Penulis juga aktif menuangkan idenya dalam blog miliknya selain itu juga mengembangkan blog secara mandiri juga, kunjungi di http://www.recosmic.dd.am.
Hak cipta / Licensi:
- Seluruh materi X-Code Magazine dapat didownload, dibaca, dimodifikasi serta disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis.
- Hak cipta di tangan penulis dan X-Code Magazine dengan mengikuti licensi GPL (General Public License).