Vyatri's Sandbox | Web Development Blog by Vyatri

Explore the wisdom behind the web

Dulu banget waktu masih newbie belajar tentang HTML, saya banyak mengunjungi situs-situs tutorial seperti about.com. Contoh URL tutorialnya itu seperti ini nih bentuknya:

http://php.about.com/od/learnphp/p/learn_php_free.htm
http://php.about.com/od/phpbasics/p/database_links.htm
Melihat bentuk url yang seperti itu, saya pikir isi server about.com rumit banget. Tutorialnya kan ada banyak. Berarti mereka rajin sekali ya.. membuat halaman html sebanyak itu dalam folder-folder sebanyak itu. Belum lagi kalau desainnya berubah. Wah. Kalau ada 1000 halaman tutorial, berarti mereka mesti meng-update 1000 file dalam sehari sekaligus. Haha :D. Tapi ya saya maklumi saja. Namanya juga situs gede. Pasti sudah punya modal hostingan gede pula untuk menampung ribuan halaman HTML (berpikir polos mode on ^^).

Tapi sejak 3 tahun yang lalu (huyuh.. telat banget) saya baru nyadar kalo 'halaman-halaman HTML' itu aslinya halaman dinamis (ASP atau PHP) yang di mod rewrite. ^^

Bentuk mudahnya mungkin seperti ini:
http://www.domain.com/article.php?title=hello-world
menjadi
http://www.domain.com/hello-world.html

atau dari
http://www.domain.com/article.php?title=hello-world&category=uncategorized
menjadi
http://www.domain.com/uncategorized/hello-world.html

Intinya, dengan mod rewrite, kita bebas menentukan format bagaimana bentuk url itu jadinya.

Kebanyakan blog dan situs-situs besar biasanya memasang judul artikel (atau judul produk jika jenis websitenya e-commerce) sebagai URLnya.

Ada banyak tutorial di internet yang membahas tentang mod rewrite. Disini saya coba uraikan cara membuat mod rewrite yang menurut saya paling mudah dan paling sering saya pakai.

Sebagai study case, mari kita membuat mod rewrite untuk halaman detail sebuah portal berita yang (misalnya) anda punya.

First of all, anggaplah kita sudah mempunyai database yang menampung berita-berita yang akan ditampilkan. Asumsikan bahwa kita akan menampilkan berita-berita tersebut melalui sebuah halaman PHP yang bernama berita.php.

Jika biasanya berita ditampilkan dalam bentuk URL berikut:
http://www.situsberita.com/berita.php?judul=jakarta-heboh-kebanjiran-lagi&kategori=bencana-alam
maka kali ini kita ingin supaya format berita tampil dengan url berikut:
http://www.situsberita.com/bencana-alam/jakarta-heboh-banjir-lagi.html

Langkah-langkahnya yaitu:
  1. mula-mula, buka hostingan situs berita tsb dengan ftp atau file manager.
  2. download file .htaccess dari folder public_html (atau www)
Jika tidak ketemu filenya, maka bisa bikin sendiri di notepad (kosongan), lalu simpan dengan nama .htaccess (tanpa tambahan nama lain atau extension lain) dan save as typenya all files.
  1. Edit file tersebut dengan text editor favorit. Saya biasanya pakai notepad++ :)
  2. Tambahkan script berikut kedalamnya.


RewriteEngine on

RewriteBase /home/user/public_html/
RewriteRule ^(.*)/(.*).html /berita.php?judul=$1&kategori=$2

note: modify path pada baris ke 3. Pada baris ke 4, format url yang diinginkan berada di sebelah kiri (diawali dengan ^), sedangkan format url yang sebenarnya berada di sebelah kanan (diawali dengan /). Kiri dan kanan dipisahkan dengan satu spasi. $1 untuk memanggil nilai wildcard(.*) yang pertama, sedangkan $2 untuk memanggil (.*) yang kedua, dst. Jika ingin menambahkan rule baru, tambahkan saja langsung di bawahnya lagi tanpa harus mengulang baris 1-3.
  1. Save
  2. upload lagi (overwrite)

Sudah selesai :). Silakan buka internet browser anda, dan ketik langsung URL dengan format berikut di address bar:
http://www.situsberita.com/nama-kategori/judul-berita.html

Nah. Mudah-mudahan sukses. Selebihnya tinggal tugas anda untuk merubah nilai href didalam tag <a> di seluruh bagian situs tersebut supaya urlnya menggunakan alamat baru. Jangan lupa di urlencode() dulu. Selanjutnya dipanggil dengan urldecode().

Penggunaan mod rewrite membantu menaikkan posisi situs anda pada search engine. Karena itu, banyak pakar SEO yang mengharuskan penggunaan mod rewrite ini pada setiap situs.

Problem:
  • Adapun jika terjadi 500 internal server error, itu berarti terjadi kesalahan pada penulisan mod rewrite pada file .htaccess.
Jika masih kesulitan, silakan hubungi web developer yang profesional untuk keperluan pembangunan website Anda :D. Atau hubungi saya anytime, Ok. ;)

Semoga bermanfaat

1 comments:

Bagaimana membuat url dibelakang filenya tidak memakai extensi file contoh http://url/file.html menjadi http://url/file terima kasih...
Tolong balas ke email saya noe@noe.dnsalias.net