Feb
13
2008

Clean URL dengan Apache mod_rewrite

sebagai contoh bagaimana membuat clean URL dengan menggunakan mod_rewrite dan apache

http://www.sinaryuda.web.id/contoh/rewrite.php?module=artikel&id=12?=en

pada URL diatas terlihat membingungkan bagi beberapa mesin pencari dan terlihat tidak bersih atau rapi. sekarang pertimbangkan dengan URL berikut dan bandingkan dengan yang pertama :

http://www.sinaryuda.web.id/contoh/artikel_12_en.html

seperti yang anda lihat, pada URL yang kedua terlihat lebih pendek dan lebih rapi. pada artikel ini akan kita coba bagaimana membuat clean URL dengan mod_rewrite di apache.

Apache mod_rewrite

Module mod_rewrite sebenarnya adalah padanan nama, dengan menulis ulang. seorang webmaster dapat menggunakannya untuk menulis ulang URL dengan mengikutsertakan kondisi dan expresion. dengan menggunakan modul ini, anda dapat membuat user melihat clean URL yang mana terlihat static tetapi memiliki halaman yang dinamis. module mod_rewrite digunakan dengan menaruh beberapa baris dalam file .htaccess atau pada file config apache. pertama yang harus dilakukan adalah mengaktifkan Rewrite Engine dan mensetting RewriteBase dengan memberikan beberapa baris code di dalam file .htaccess :


RewriteEngine on
RewriteBase /contoh/

setelah mengaktifkan Rewrite Engine maka Anda dapat menyeting aturan dalam file .htaccess, Rewrite Engine akan digunakan untuk menulis ulang URL. jadi, mari kita gunakan URL kedua lagi. RewriteBase ialah lokasi utama dari yang ingin kita rewrite.
kadang-kadang kita memerlukan baris RewriteBase / dan kadang-kadang tidak memerlukannya, tergantung pada server/host yang digunakan. pada contoh diatas di karenakan saya meletakkan halaman yang akan di panggil berada dalam folder contoh mana
saya tambahkan ‘/contoh/’

halaman yang akan dipanggil adalah artikel_12_en.html. kita telah memisahkan bagian-bagian lain halaman dengan menggunakan karakter ‘_’ (underscore). Yang kita inginkan ialah mengambil tiap-tiap bagian dari nama dan menyesuaikan ke dalam URL yang pertama sehinggan dapat dilewatkan ke dalam script rewrite.php. untuk itu kita perlu mengatur aturan rewrite. mari kita lihat contoh dibawah yang akan digunakan sebagai baris kedua dalam file .htaccess :


RewriteRule ^(.*)_(.*)_(.*).html rewrite.php?module=$1&id=$2?=$3

Ini mungkin sedikit membingungkan pada saat pertama tetapi akan saya coba menjelaskannya kepada Anda. karakter ^ berarti mulai pada awal dari nama halaman yang di minta. dan tiap (.*) berarti samadengan 0 atau lebih karakter. dan kita memiliki ‘_’
(underscore) untuk memisahkan setiap yang diikutkan dengan menggunakan ekstensi .html. $1 sesuai dengan kata pertama dari nama halaman, $2 sesuai dengan id artikel dan yang terakhir $3 sesuai dengan bahasa. jadi selesai sudah dengan rewrite mengubah clean URL kedalam salah satu fungsi yang kita butuhkan agar script kita bekerja. pengguna hanya akan melihat cean URL.

Cukup sekian, saya harap informasi ini dapat membantu anda dengan mod_rewrite dengan mencoba contoh sederhana pada file .htaccess Anda. silahkan berikan komentar mengenai artikel ini.

Incoming search terms:

  • belajar mod_rewrite
  • contoh mod_rewrite
  • pengertian clean url
  • Membuat clean url dengan htaccess
  • membuat clean url php
  • cara membuat clean url di ci
  • cara membuat clean url
  • membuat url statis
  • membuat clean url rewrite
  • belajar htacces mod_rewrite

Random Posts

About the Author: Tommy Sinaryuda

13 Comments + Add Comment

  • wekekekkeke…. kalo ngeset password / username pake htpassword carane pie mas..?untuk folder tertentu hieahieaheaiheaihaeiaei

  • @Eko
    silahken liat postingan berikut mungkin sedikit membantu :-D
    http://sinaryuda.web.id/index.php/2008/02/20/proteksi-web-directory-dengan-htpasswd/

  • mestinya dikasi contoh full script nya setelah selesai setting sana/i ;)

  • @justyushi

    Ouw.. iya.. lupa ga ngasih conroh script nya yaa…

    ini ta tambahin hehehe….

    < ?
    $a = $_GET['module'];
    $b = $_GET['id'];
    $c = $_GET['lang'];
    if(isset($a) and isset($b) and isset($c)) {
    	echo 'param 1 nama module= : '.$a.'
    '; echo 'param 2 id artikel= : '.$b.''; echo 'param 3 bahasa= : '.$c.''; } else { echo 'Parameter tidak sesuai'; } ?>

    itu cuman untuk ambil parameternya aja om yushi
    ini hasilnya
    http://www.sinaryuda.web.id/contoh/artikel_12_en.html

  • seharusnya yg dikasi contoh tuh file .htaccess yang udah diutak/ik om

  • Kalo untuk cms yg linknya beda gimana tuh, e.g. joomla di tiap komponen kan kadang beda, bs kasih contoh gak

  • konsepnya sebenarnya memetakan links, jadi kalo module yg berbeda2 bisa dibuat pemetaan links.

    untuk cms yg link nya berbeda bisa aja dibuat semacam pemetan link, kalo untuk joomla bisa menggunakan joomla SEF.

  • Mas, bingung..
    Dah berkali kali saya coba,tetep aja gak bs brubah url nya,,
    gmana ni mas?
    Bantuin dong…
    Tolong buatin skrip lengkapnya ya, kirim ke email saya,
    biar langsung saya coba..
    makasih sbelumnya..
    Saya tunggu kirimannya..

  • url atas sendiri g salah ketik, bukannya haruse gini:
    http://www.sinaryuda.web.id/contoh/rewrite.php?module=artikel&id=12&lang=en

    :D

  • Mas Sinaryuda aku mau tanya, aku kan lagi belajar buat website dengan php cuma ada kendala dengan URL Rewrite gitu..
    Jadi masalah nya gini, aku punya table MODUL yang meliputi beberapa nama field yaitu :

    CREATE TABLE `modul` (
    `id_modul` int(10) NOT NULL auto_increment,
    `nama_modul` varchar(50) NOT NULL,
    `isi_modul` varchar(50) NOT NULL,
    `statis_content` text NOT NULL,
    `gambar` varchar(50) NOT NULL,
    `published` enum(‘ya’,'tidak’) NOT NULL default ‘tidak’,
    `aktif` enum(’0′,’1′) NOT NULL,
    `urutan` int(10) NOT NULL,
    PRIMARY KEY (`id_modul`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

    INSERT INTO `modul` VALUES (1, ‘Banner’, ‘?mod=banner’, ”, ”, ‘tidak’, ’1′, 0);

    cara jadiin url statis nya gimana ya mas ?

    Soal nya bingung karena aku dah buat URL di table nya ?mod=banner gitu mas..
    apa bisa di buat dengan Apache mod_rewrite ?
    THX B4 ya mas…

  • Makasih sekali lagi, gw dah pake ilmu ini buat web gw

  • koq gak bisa jalan yah??? bisa minta script lengkapnya nggak? kirimin ke email aku ya!! thx

Leave a comment