Oleh: addthe | Agustus 4, 2007

Membuat Clean Url dengan .htaccess dan tanpa mod_rewrite

Sumpahh, ini yang keren cuman judulnya aja.

Beberapa kali saya membuat web yang biasanya saya pikirkan adalah bagaimana mudahnya web itu diindeks oleh si tukang gerayang (baca:mesin pencari), karena walaupun web kita top markotop tapi gak ada orang yang kenal mana bisa web kita bermanfaat bagi orang yang lain. Lohh mas tapi khan bisa pake mulut mberitahu link web kita? iya berapa telinga yang mau kau bisiki dengan alamat webmu…lohhh mas tapi khan webnya bisa kita minta cantolkan di webnya orang lain? iya berapa cantolan yang mau kau cantolkan..ahh sudahlah aku tak mau banyak berdebat dengan kamu.

Selama yang saya pahami di sini ada 2 cara untuk membaut clean url

  1. dengan menggunakan .htaccess
  2. dengan menggunakan parsing url (tenang sekali lagi ini yang keren cuman tulisannya aja)

Sekarang mari kita mulai petualangan kita, siapkan niat dulu untuk belajar mencari ridho darinya

1. Dengan Menggunakan .htaccess

.htacess cuma kayak file biasa, anda bisa membuatnya dengan menggunakan gedit anda ataupun dengan notepad dan namai dengan .htaccess maka itulah .htaccess.

prinsip clean url dengan menggunakan .htaccess ini adalah seperti redirect pada php, namun untuk bisa menggunakan ‘manuver’ dengan menggunakan .htaccess ini pastikan kalau server anda suport dengan modul apache yang namanya mod_rewrite. Soalnya cuman cerita pengalaman aja, pas aku buat web iseng-iseng sama jadul dulu aku hosting dan sudah siap-siap dengan kuda-kuda sepenuhnya untuk aku hosting di web hosting gratisan yang namanya awardspace , semua sudah kuaplod dan kucoba link2 nya ternyata gak jalan, maksudnya gak jalan pas linknya tak arahkan sesuai dengan pola yang dibuat pada .htaccess ternyata malah aku terbawa ke tampilannya awardspace nya, hmm ternyata awardspace tak support mod_rewrite, paling tidak sampai tulisan ini dikeluarkan itu kesimpulan yang bisa kuberikan.

pola yang ada pada htaccess ini seperti ini, diasumsikan njenengan semua sudah punya file yang dianugerahi nama .htaccess dan sudah ditempatkan di root halaman web anda. Jika sudah dibuat maka buka .htaccess anda kemudian mari kita lanjutkan tutorial nggak mutu ini.

untuk yang pertama tuliskan pada file .htaccess anda

RewriteRule ^newpattern$ oldpattern [QSA,L]
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ – [S=84]

Sesudah itu kita lanjutkan untuk berkreasi dengan url kita.

Misalkan kita punya url dengan pola asli sebelum dikreasi dengan .htaccess seperti ini

http://webjadoel.com/index.php?op=artikel&id=12

ingin kita ubah menjadi pola seperti ini

http://webjadoel.com/artikel/12

Maka masih dengan file .htaccess kesayangan kita, kita buat polanya.

RewriteRule ^artikel/(.+)$ ./?pilih=lihat&id=$1 [QSA,L]

Ya sudah seperti itu saja tutorialnya, jadoel sekali bukan??

Prinsip dari clean url dengan htaccess ini adalah

RewriteRule polabaru polalama

Pada url RewriteRule ^artikel/(.+)$ ./?pilih=lihat&id=$1 [QSA,L] bisa kita lihat setelah ada tulisan $1 setelah tanda sama dengan id, jika ada beberapa nilai variabel yang kita dapatkan dari $_GET nya maka polanya juga sama dengan yang tadi tinggal kita masukkan tambahan manuvernya, misalnya seperti ini

RewriteRule ^artikel/(.+)/(.+)$ ./?pilih=lihat&cat=$1&id=$2 [QSA,L]

bisa kita lihat tanda dolar ($) yang diikuti dengan angka menunjukkan urutan nilai variabel yang didapat dari $_GET tadi. Ya sudah intinya itu saja sihhh tutorialnya…

Tapi satu hal yang musti kita ingat dalam membuat web dengan menggunakan htaccess ini bahwa lokasi url dan linknya jangan dibuat relative, maksude khan kita seringnya menuliskan alamat css nya cuma dengan css/style.css dengan menggunakan htaccess ini maka anda musti cantumkan alamat komplit dari alamat css anda , jadi misalkan alamatnya http://webjadoel.com dengan lokasi css di folder css dengan nama style.css. Maka kita menuliskannya di link rel style sheetnya seperti ini

<link href=”http://webjadoel.com/css/style.css” rel=”stylesheet” type=”text/css” />

Seperti itu, kalau kagak dibuat seperti itu biasanya stylemu jadinya morak marik morak. Dah itu dulu sedikit penjelasan tentang clean url dengan htaccess, anda lihat ini benar-benar tidak seperti judulnya yang sok2an.

2. Dengan Menggunakan Parsing URL

seperti yang sudah saya curhatkan di atas, bagaimana sengasaranya saya ketika membuat web yang sudah dibuat dengan .htaccess ternyata server nya tidak bisa melayani ambisi web saya untuk minta mod_rewrite di server.

Kata kucinya adalah menggunakan fungsi ledakan ( explode ) pada php yang breduet maut dengan fungsi $_SERVER['PATH_INFO'] yang juga pada php dan di akhiri perjanjian yang dinamakan dengan array_shift itu saja silahkan anda cari tutorialnya sendiri tentang semua fungsi-fungsi di atas, maaf my body is not delicious now ( gak enak badan ).

Oke langsung saja. Misalkan kita punya alamat url di browser dengan pola seperti ini,

http://webjadoel.com/index.php?cat=3&id=1

maka dengan $_GET saja bisa kita ketahui apa isi variabel cat dan juga variabel id nya, karena kita menggunakan perintah $_GET. Tapi yang kita fokuskan pada tulisan ini adalah membuat clean_url yang biar si penggrayang ( baca:mesin pencari ) lebih lengket dengan web kita.

Maka kita buat pola dulu misalnya seperti ini

http://webjadoel.com/index.php/1/2

agar nilai 1 setelah slash index.php di baca sebagai nilai variabel cat dan juga nilai 2 dibaca sebagai nilai daripada variabel id maka kita pake kolaborasi tadi antara $_SERVER['PATH_INFO'], explode, dan juga array_shift.

kita letakkan (ini misalkan saja, silahkan anda buat yang lebih elegan) scriptnya seperti ini

$url_sekarang = explode(‘/’,$_SERVER['PATH_INFO']);
array_shift($url_sekarang);

dan jika urlnya seperti http://webjadoel.com/index.php/1/2 setelah terjamah oleh script ini dan anda coba tampilkan nilai dari array nya yang terwakili dengan variabel $url_sekarang maka hasilnya lebih kurang lebih seperti ini (ingat!! ini kalau anda sudah punya web, kalau di localhost juga gak masalah)

Array ( [0] => 1 [1] => 2 )

anda bisa lihat nilai dari array dengan indeks 0 bernilai 1 dan indeks 1 bernilai 2.Itu merupakan clue kita, tinggal anda obrak abrik untuk menyatakan mana variabel cat nya dan mana variabel id nya.

Misalnya seperti ini :

karena array kita yang tadi dianugerahi nama $url_sekarang maka untuk menyatakan mana nilai dari variabel cat nya dan mana nilai dari variabel id nya , kita gunakan $url_sekarang nya , menjadi pecahan variabel seperti ini

$cat=$url_sekarang['0'];

$id=$url_sekarang['1'];

Ya sudah seperti itu saja intinya, mudah bukan, gak seperti judulnya yang muluk-muluk sebenarnya mudah khan???


Tanggapan

  1. wah keren juga artikelnya. dari kemarin saya bingung tentang clean url. thanks bro. nice article!

  2. [yodi]
    senang bisa bermanfaat

  3. Bagus, membuat saya lebih mengerti tentang .htaccess, terima kasih lah pokoknamah

  4. [supono]
    kelihatannya gak ada penjelasan tentang htaccess nya dehh, hue hue hue, senang bisa bermanfaat

  5. Sumpah deh nih artikel bermanfaat banget buat gw, mudah2an penulisnya masuk surga.

    Oh iya sekalian ngasih tau, kalo kalian pengen hosting gratisan tapi gak pake banner coba dech log on ke http://www.hosting-gratisan.com. Benerah dech kagak pake iklan ato banner yg nempel di situs kita. Buktinya 2 website gw pake hosting gratisan. Tengok aja http://www.portalsukabumi.com & http://www.program-afiliasi.com

    Thanks Bro
    Rachmat

  6. amin, ngomong2 soal hosting gratisan…hosting gratisan ku di freehostia bubar =))

  7. saya ada masalah mas dengan tips dan triknya
    bisa tolong lihat mas di http://www.untukmu.net

    dimana salahnya ?

    Makasih

  8. waahhh……artikel yagn sangat menyentuh hati…….

  9. hmm, byk dah gw liat kyk begini,
    BUT…
    the problem is..
    gmn cara ilangin ekstensi .php pake url yg dah jadi tersebut…
    Any suggestion?!

  10. @cupidnouva : pake htaccess bisa kok

  11. @cupid : pake htaccess keknya bisa

  12. nice tutorial

  13. gimme another example for using .htaccess

  14. mas mau tnya??seumpama di database a.dbf ada 4 row trus didatabase b.dbf ada 2 row..
    mau replace dari a.dbf ke b.dbf gmn mas biar b.dbf ada 4

  15. tanya lagi kalau mau rubah stuktur tabel gmn ya?
    seumpama : tgl datetime 8 ,biar bisa tgl date 8

  16. http://www.webmaster-toolkit.com/mod_rewrite-rewriterule-generator.shtml

  17. kok gagal terus ne??
    saya udah ikuti petunjukna tapi tetap gagal,,
    saya masih mencobanya dengan menggunakan xampp versi terbaru. . .

    bantu dong. . .

  18. terima kasih sekali, artikelnya keren… buat tambahan wawasan.. sekedar info.. kalo pake joomla, tinggal setting aja di global configuration, langsung clean url

  19. wah keren nih blognya… masukin kata kunci clean url masuk di halaman pertamax :D

  20. saya coba beberapa mod_rewrite tapi ada yang tidak berjalan dengan baik, mungkin masih salah syntax ya, eniwey, tutorial yang bagus…


Beri tanggapan

Your response:

Kategori