Thursday, November 19, 2009

Membuat URL mod Rewriite Part-1 http conf



Tutorial kali ini saya buat untuk menjawab pertanyaan dari seorang teman di ilmuwebsite.com yang menanyakan cara membuat alamat website seperti ilmuwebsite.

contoh:
http://ilmuwebsite.com/gb/2/

metode pembuatan alamat website seperti diatas bisa kita dapatkan dengan cara memanipulasi setting webserver yang kita punya, yaitu dengan mengedit file http.conf di direktori server. tujuannya agar webserver kita menampilkan alamat website hasil modifikasi kita ke dalam address bar pada browser kita.

Yang akan saya contohkan disini http://localhost/index.php?hal=ilmuwebsite menjadi http://localhost/ilmuwebsite/

saya akan terlebih dahulu menjelaskan beberapa kelebihan dan kekurangan dari penggunaan metode ini, tapi menurut saya metode cukup efektif untukdigunakan dan saya rekomendasikan.

Memiliki kelebihan:

  • tidak perlu mengubah script dan susunan direktori kita, kita langsung bisa menggunakannya hanya dengan menambahkan sebuah file .htaccess pada direktori utama website kita (direktori utama website bukan berarti root direktori server, walaupun kita berada sebagai sub-direktori kita masih dapat menggunakannya, tetapi dengan syarat & ketentuan yang akan saya jelaskan dibawah ini).
  • sekuriti yang menjamin, anda dapat melihat contoh diatas, pada http://localhost/ilmuwebsite/ kita membuat seakan-akan kita mempunyai sebuah direktori bernama ilmuwebsite, yang sebenarnya kita tidak punya, hal ini dapatmengacaukan orang yang ingin macam-macam dengan website kita Smile
  • struktur addressnya friendly bagi google, maksudnya struktur alamat seperticontoh diatas (http://localhost/ilmuwebsite/) lebih mudah diterima olehGOOGLE daripada kita menggunakan banyak menggunakan variabel GET padaalamat website (http://localhost/index.php?hal=ilmuwebsite). Hal ini sangat membantu apabila kita sedang mempelajari SEO Smile
sedangkan kekurangannya:
  • semualinknya harus berupa absolute link, baik itu untuk image maupun file eksternalnya, maksudnya apabila anda biasanya menggunakan relatif linkseperti: 
        ../image/file.jpg
        atau
        ../../image/file.jpg

       maka link seperti ini tidak akan bekerja pada metodeini, anda harus mengubahnya dengan: 

        http://[host-anda]/image/file.jpg
        atau
        http://[host-anda]/[path]/image/file.jpg

       link diatas disebut absolute link. untuk membuat auto absolute link, saya akan jelaskan pada file
        autopath.php dibawah.

  • tidaksemua server mengaktifkan settingan ini, atau anda bisa menghubungi server yang anda gunakan agar mereka dapat mengaktifkannya, tetapi andaharus menjelaskan tujuan anda agar mereka mempercayai anda.

okey, saya rasa cukup. Jangan kebanyakan Wink
langsung saja saya jelaskan, metode ini menggunakan mod_rewrite.so pada modulephp, sebelumnya anda harus mengedit file bernama httpd.conf pada direktori server anda, di

C:\Program Files\xampp\apache\conf\httpd.conf
(saya memakai XAMPP 1.6.0a basic, direktori anda bisa berbeda dengan saya)

buka file http.conf dengan wordpad atau notepad kemudian pada baris

#LoadModule rewrite_module modules/mod_rewrite.so

hilangkan tanda (#) hingga menjadi

LoadModule rewrite_module modules/mod_rewrite.so

save,kemudian restart webserver anda, lalu buka phpinfo(), pada bagian apache2handler akan muncul tulisan mod_rewrite seperti pada milik sayadi bawah ini.



iniberarti mod_rewrite telah aktif. jika belum ada tulisan mod_rewrite,berarti anda harus memeriksa ulang httpd.conf anda atau restart lagiwebserver anda.

sekarang anda tinggal menggunakannya, mungkin bagian ini agak rumit, tetapi saya akan mencoba menjelaskannya sesimpelmungkin. buat sebuah file bernama .htaccess, di dalamnya tuliskan script seperti ini:



RewriteEngine On

RewriteRule ^/?([A-Za-z]+)/?$ index.php?hal=$1 [L]



Penjelasan  
RewriteRule : perintah untuk membuat rule baru
^ : awal rule
[A-Za-z] : memasukkan syarat rule ->mengijinkan karakter a-z (not case-sensitive)
tanda + : karakter tersebut boleh lebihdari 1
/ : menambahkan tanda "/"pada akhir url
? : mengijinkan url tanpa "/" di akhirannya(ex:http://ilmuwebsite/ OR http://ilmuwebsite)
$ : akhir rule
index.php?hal=$1 : kondisi yang akan dirubah
$1 : rule yang akan ditampilkan dengan syarat [A-Za-z]
[L] : apache menghentikan evaluasi jika kondisi terpenuhi.
   
   

simpan file diatas, setelah itu buat 3 buah file php,

pertama index.php, yang isinya:


Checking... 

ilmuwebsite

if ($_GET['hal']=="ilmuwebsite") {     include 'greetz.php'; } ?>


kedua autopath.php, isinya:


function path($end) {

$alamat=$_SERVER['PHP_SELF'];

//mengubah variabel $alamat menjadi array
$address=explode("/",$alamat);

//mengambil array terakhir dari $address
$endaddress=end($address);

//menghilangkan path terakhir pada $alamat
$_RESULT=str_replace("$endaddress","",$alamat);

//menampilkan path lengkap dan mengganti path akhir sesuai kebutuhan
echo $_SERVER['HTTP_HOST'],$_RESULT,$end;
}
?>

terakhir greetz.php, isinya:

greetz to:

- b_scorpio
- loka
- phii
- ivan
- minang media
- dr.emi

from,
safril@ilmuwebsite.comThis e-mail address is being protected from spambots, you need JavaScript enabled to view it

simpan masing-masing file sesuai dengan namanya, jika anda benar maka struktur direktori anda akan sama seperti milik saya seperti dibawah ini:


*pada direktori diatas sebenarnya terdapat  file .htaccess tetapi tidak ditampilkan.

pembuatan file selesai.. Smile

sekarang saatnya mencoba dan melihat apa yang berubah?

jalankan scriptnya..

klik pada link bertuliskan "ilmuwebsite", setelah tereksekusi lihat pada address bar nya, akan tampak seperti ini:



tampak biasa bukan??

sekarang buka script index.php, lalu anda rubah :


ilmuwebsite




menjadi,

ilmuwebsite



save, sekarang ulangi dari awal dengan kembali ke halaman index.php, kemudian tekan linknya lagi..

apa yang terjadi? sekarang linknya berubah menjadi

 

bagaimana bisa??

Dengan rule pada file .htaccess yang telah kita atur tadi kita dapat mengatur bagaimana tampilan pada address bar kita. Mudah bukan?? Smile

Untuk teman kita yang bertanya, inilah jawabannya.. sengaja saya sharing agar teman-teman ilmuwebsite yang lain tidak ketinggalan berita Wink

selamat berkarya & semoga bermanfaat... Smile

untuk download file-nya disini

No comments:

Post a Comment