Apa sih URL Rewriting? URL rewriting adalah penulisan ulang URL (jiah
cm ditranslate doang -_-). Gimana ya,
susah mengungkapkan nya dengan kata-kata (yaelah, bilang aja kgak tau). Kalo
disuruh ngasi tau apa definisinya/pengertiannya, saya sendiri juga ga pinter
merangkai kata-kata. Baiknya langsung aja saya kasih contoh.
Struktur URL tadi
mungkin kurang begitu mudah dipahami oleh sebagian orang, kalau URL dengan
struktur yang diatas sulit dimengerti oleh manusia, apalagi dimengerti oleh
mesin pencari, bisa-bisa website kita jauh dari pencarian. dan efeknya berkurangnya visitor, jadi berkurang
pelanggan, sehingga penghasilan juga berkurang L. Jadi URL rewriting juga sangat
berpengaruh dari sisi SEO website kita .URL diatas akan lebih baik jika
strukturnya seperti ini ---> http://kimcila.biz/layanan/perawan/1 . Nah,, gimana caranya buat URL rewriting kaya
diatas?
Mari kita
bahas Caranya, pertama syaratnya yaitu:
> Web server yg dipakai Apache (kalau web server yg lain belum tau saya)
> Modul mod_rewrite
> Web server yg dipakai Apache (kalau web server yg lain belum tau saya)
> Modul mod_rewrite
Aktifkan dulu modul mod_rewrite
, caranya : buka file konfigurasi nya di folder apache, trus cari file http.conf
Uncomment baris seperti di bawah ini (hilangkan tanda #).
Uncomment baris seperti di bawah ini (hilangkan tanda #).
#LoadModule rewrite_module modules/mod_rewrite.so
#AddModule mod_rewrite.c
kalo udah, restart service
apache nya.
Di dalam modul mod_rewrite, ada dua fungsi. Yaitu fungsi RewriteRule dan RewriteCond. RewriteRule adalah fungsi yang sangat sederhana untuk memberitahu mod_rewrite apa yang harus dilakukan Sedangkan RewriteCond dipakai untuk memeriksa suatu kondisi, mirip dengan konsep if … then … .
Di dalam modul mod_rewrite, ada dua fungsi. Yaitu fungsi RewriteRule dan RewriteCond. RewriteRule adalah fungsi yang sangat sederhana untuk memberitahu mod_rewrite apa yang harus dilakukan Sedangkan RewriteCond dipakai untuk memeriksa suatu kondisi, mirip dengan konsep if … then … .
Aturan penggunaan
RewriteRule adalah sebagai berikut:
RewriteRule Pattern Substitution [Flag(s)]
RewriteRule Pattern Substitution [Flag(s)]
Pattern itu maksudnya pola/struktur
url yang dibuat, trus kalau substitution adalah file yang dituju untuk
keperluan pemrosesan selanjutnya.
Kita coba RewriteRule yg simple dulu,
Kita coba RewriteRule yg simple dulu,
Buat
file php dengan isi seperti ini
<?php echo “test simple url rewriting”; ?>
<?php echo “test simple url rewriting”; ?>
simpan dengan nama test.php
Kemudian
buat file .htaccess yang isinya begini :
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*).html$ $1.php [NC]
</IfModule>
RewriteEngine on
RewriteRule ^(.*).html$ $1.php [NC]
</IfModule>
Letakkan file .htaccess ini satu
folder dengan file test.php , nah sekarang coba akses file test td
di browser dengan URL http://localhost/test.html jika muncul tulisan test simple url rewriting. Berarti
URL rewriting kita berhasil. Lhoh ! kok bisa? Kan tadi yang dipanggil
test.html, kenapa malah isi dari
test.php yang muncul. Yah itu karena kelakuan si mod_rewrite td, normalnya ketika kita akses test.html
harusnya muncul error 404. Kan file test.html ga ada, tp karena ilmu sihir si
mod_rewrite, pas kita akses test.html kita diarahkan ke file test.php, coba aja
hapus file .htaccess nya, dan akses kembali test.html, apa yang terjadi?
Aturan yang ada di .htaccess ini juga berlaku
untuk semua file, misal ada file login.php, jd ketika kita panggil login.html
maka akan diarahkan ke file login.php. Tanda [NC] pada file .htaccess diatas
maksudnya yaitu No Case atau case-insensitive alias tidak membedakan
pemakaian huruf besar maupun kecil pada alamat URL.
Untuk struktur URL seperti contoh di awal
tulisan ini, yg http://kimcila.biz/layanan/perawan/1 ,
coba buat file php dengan isi kaya gini
<?php
switch ($_GET['level'])
{
case 01:
$level = 'highclass';
break;
case 02:
$level = 'mediumclass';
break;
case 03:
$level = 'lowclass';
break;
}
?>
<html>
<head>
<title>Test URL Rewriting</title>
</head>
<body>
<?php echo 'Anda memesan layanan type ' . $_GET['type'] . ' level ' . $level ?>
</body>
</html>
simpan dengan nama index.php
trus buat file .htacsess nya dengan RewriteRule nya kaya gini :
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^layanan/([a-zA-Z]+)/([0-9]+) index.php?type=$1&level=$2 [NC]
</IfModule>
Penulisan mod_rewrite harus diapit oleh
dan
.
Fungsi diatas adalah untuk mencegah terjadinya pesan kesalahan "500
Internal Server Error" saat page request. coba buat file php dengan isi kaya gini
<?php
switch ($_GET['level'])
{
case 01:
$level = 'highclass';
break;
case 02:
$level = 'mediumclass';
break;
case 03:
$level = 'lowclass';
break;
}
?>
<html>
<head>
<title>Test URL Rewriting</title>
</head>
<body>
<?php echo 'Anda memesan layanan type ' . $_GET['type'] . ' level ' . $level ?>
</body>
</html>
simpan dengan nama index.php
trus buat file .htacsess nya dengan RewriteRule nya kaya gini :
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^layanan/([a-zA-Z]+)/([0-9]+) index.php?type=$1&level=$2 [NC]
</IfModule>
Penulisan mod_rewrite harus diapit oleh
Untuk membuat rule baru, kita tulis RewriteRule. kemudian, kita gunakan tanda ^ untuk memulai rule tersebut.
([a-zA-Z]+) berarti membatasi agar karakter yang diterima hanya berupa huruf a sampai z baik itu huruf besar atau kecil.
([0-9]+) berarti membatasi agar angka yang diterima hanya berupa angka 0 sampai 9.
Tanda + berarti angka/huruf tersebut boleh lebih dari 1.
Dengan cara seperti di atas jika kita
mengetikkan http://localhost/layanan/perawan/1 di web browser, otomatis akan diterjemahkan
sebagai http://localhost/index.php?type=perawan&level=1.
Sama dengan
9 komentar
Tulis komentarilmu yang mempelajari ini apha gan?(gantungan kunci)wkwkwkwk jaskid...
Replybruakakakakak..
ReplyGan masih bingung
Replybingung nya dimana gan ?
Replyizin bookmark dulu gan.. B-)
Replykalo misal mau rewrite aja gmna. ?
Replyjadi link yg udh di rewrite itu gk bisa di akses . ?
misal kita punya link localhost/belajar/posts/berita/id=1
nanti di rewrite tampilnya localhost/belajar/posts/berita/1
tapi ketika kita akses localhost/belajar/posts/berita/1 itu nanti hasilnya ga bisa.
gmna caranya. ?
ngapain di rewrite kalo gak dibolehin akses.
Replylangsung aja di blok. sejak awal kalo url yg dimaksud gak boleh diakses.
mantab gan share ilmunya. buar seo.
Replymitsubishimobiljakarta.com
maksudnya kalo di akses langsung, tanpa klik
Reply- Kritik dan saran sangat saya nantikan untuk kemajuan blog ini.
- Silakan report, jika ada link yang mati.
- Mohon untuk berkomentar sesuai dengan tema postingan.
- Dilarang berkomentar yang mencantumkan LINK AKTIF.
ConversionConversion EmoticonEmoticon