Sabtu, 21 November 2009

Rewrite URL dengan file .htaccess

Rewrite URL atau biasa di sebut Clean URL berfungsi untuk menyederhanakan URL dan tampak lebih friendly, selain itu mudah di index oleh search engine. dengan kelebihan tersebut metode ini diterapkan hampir di semua BLOG atau WEB portal yang ada.

Aturan ReWrite di simpan pada file .htaccess, file .htaccess sendiri adalah file configurasi external yang dapat di baca oleh apache dimanapun asal berada di root webserver.

Contoh URL yang menggunakan ReWrite URL

URL asli
http://localhost/news.php?thn=2009&bln=08&tgl=01&id=2309

Pada Browser
http://localhost/news/2009/08/01/2309/content_news
http://localhost/news/2009_08_01_2309_content_news.html
http://localhost/news/200908012309/content_news.html
http://localhost/read/200908012309/content_news.html

dst..

Bagaimana cara membuatnya?
1. Buat file dengan nama .htaccess di docroot (Document Root) web Anda.
2. Agar apache dapat membaca file .htaccess aktifkan module mod_rewrite.so pada configurasi httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
menjadi
LoadModule rewrite_module modules/mod_rewrite.so
3. Restart httpd
4. Masukan perintah sederhana di bawah ini ke file .htaccess
RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [NC]

5. Buat file PHP dengan nama testing.php
6. Masukan baris code di bawah ini ke file .htaccess

echo "Ini adalah testing.php";
?>
7. Panggil http://localhost/testing.htm di browser Anda.
Perintah diatas akan merubah semua berakhiran .htm menjadi .php
Hasil --> http://localhost/testing.htm maka di baca oleh server adalah http://localhost/testing.php

Penjelasan :
RewriteEngine on --> Mengaktifkan Module ReWrite
RewriteRule --> rule atau aturan proses direct. bila tidak sesuai pola maka URL yang di baca server sesuai dengan yang tertulis di browser.
^(.*)\.htm$ --> pola rule, artinya baca dari character pertama "diwakili tanda ^", di lanjutkan dengan karakter
apa aja "diwakili tanda ." ulangi sebanyak charater yang ada di "wakili tanda *",
diakhiri .htm "diwakili \.htm", sampe character terakhir "diwakili tanda $".
tanda kurung berfungsi sebagai pengklompok pada kasus di atas memisahkan http://localhost/testing dengan .htm,
$1.php --> $1 adalah nilai yang di ambil dari Pola di atas yang di apit tanda kurung,
pada kasus di atas adalah http://localhost/testing setelah itu di lanjutkan dengan .php,
sehingga hasil akhir menjadi http://localhost/testing.php

contoh lainnya :
1.
Pada Browser
http://localhost/news/2009/08/01/2309/content_news
di baca server
http://localhost/news.php?thn=2009&bln=08&tgl=01&id=2309
rule yang bisa digunakan
RewriteRule ^news/([0-9]*)/([0-9]*)/([0-9]*)/([0-9]*)(.*)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]
atau
RewriteRule ^news/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)(.+)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]
atau
RewriteRule ^news/([^/]+)/([^/]+)/([^/]+)/([^/]+)(.+)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]

2.
Pada Browser
http://localhost/news/2009_08_01_2309_content_news.html
di baca server
http://localhost/news.php?thn=2009&bln=08&tgl=01&id=2309
rule yang bisa di gunakan
RewriteRule ^news/([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+)(.+)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]

3.
Pada Browser
http://localhost/news/200908012309/content_news.html
di baca server
http://localhost/news.php?thn=2009&bln=08&tgl=01&id=2309
rule yang bisa di gunakan
RewriteRule ^news/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]+)(.+)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]

4. Selanjutnya Anda sendiri yang mencoba.

Pola tersebut di kenal dengan ReGex(Regular Expression). pahami lebih lanjut character - character Regex lainnya untuk pengembangan lebih lanjut.

Salam Teknologi Informasi

Tidak ada komentar: