Membuat Friendly URLs Di Apahche dengan ReWriteMode
15 04 2008Belakangan ini saya bingung mencari - cari bagaimana ya caranya membuat Friendly URLs di website. Apa yang dimaksud dengan Friendly URLs? Lebih jelasnya begini :
Pernahkan Anda membuat link seperti ini :
www.namadomain.com/index.php?product=stone&category=limestones
Jenis URLs seperti diatas biasanya tidak disukai sama search engine. Dan jenis URL diatas lebih mudah kenah SQL injection. Lalu bagaimana yang dimaksud dengan friendly URLs? coba perhatikan link di bawah ini :
www.namadomain.com/product/stone/limestones.html
link diatas disebut dengan Friendly URLs. Secara kasar kita melihat bahwa link di atas mengacu pada folder product > stone > limestone.htm, padahal sebenarnya bukan folder yang kita maksudkan disana melainkan parameter yang kita passing. Dalam hal ini kita mempassing 2 buah parameter yaitu : variabel product : stone dan category=limestone
Artinya begini jika ada akses link www.namadomain.com/product/stone/limestones.html maka alihkan link tersebut ke link
www.namadomain.com/index.php?product=stone&category=limestones
sederhana kan?
Bagaimana caranya membuat hal seperti itu? Teman - teman saya sarankan mengetahui sedikit dasar pola - pola regex agar bisa membuat hal itu. Tidak perlu advance, dasarnya saja.
Ok sekarang kita mulai persiapan untuk membuat itu :
PERSIAPAN :
1. install apache, php dan mysql biar lebih lengkap.
2. setelah instalasi sukses, bukalah file httpd.conf dan lakukan modifikasi seperti di bawah ini :
# Loading module -- jalankan loading module ini yang awalnya di check sekarang di uncheck LoadModule rewrite_module modules/mod_rewrite.so#Arahkan document root-nya sesuai dengan lokasi directory Anda. DocumentRoot “C:/Program Files/VertrigoServ/_htdocs” #biasanya sudah default seperti ini <Directory /> Options FollowSymLinks AllowOverride None </Directory> #<Directory “C:/Program Files/Apache Group/Apache2/htdocs”> kalau yang ini awalnya di tutup seperti ini, kemudian saya buka seperti yang terlihat di bawah ini. Saya arahkan ke tempat default folder saya. <Directory “C:/Program Files/VertrigoServ/_htdocs”> # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be “All”, “None”, or any combination of the keywords: # Options FileInfo AuthConfig Limit # Nah kalau yang di bawah ini defaultnya seperti ini #AllowOverride None rubahlah menjadi seperti dibawah ini AllowOverride ALL # Setelah itu tambahkan baris dibawah ini Options MultiViews Indexes FollowSymLinks # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory>
3. Setelah selesai, strat apache Anda. Yang awalnya sudah start, sekarang di restart.
4. Langkah berikutnya adalah membuat file .htaccess. Buka notepad kemudian tuliskan baris perintah berikut.
<ifModule mod_rewrite.c> #RewriteMode Enable RewriteEngine On RewriteBase /ganti_dengan_nama_folder_project_anda/ #misalnya coba_url ## Hide dynamic URLs RewriteRule ^product/(.*)/(.*)\.html index.php?product=$1&category=$2 </ifModule>
simpan file tersebut di folder “coba_url” dengan nama .htaccess. ingat bukan .htaccess.txt
5. Langakah berikut adalah menguji apa yang telah kita bikin tersebut. Buat file dengan nama misalnya adalah click.html
kemudian buatlah link seperti ini di file tersebut (simpan di folder “coba_url”):
<a href=”http://localhost/coba_url/product/stone/limestones.html“>Click</a>
6 Buat file index.php isikan baris perintah di bawah ini. kemudain simpan di folder “coba_url”
<? $product = $_GET['product']; $category = $_GET['category']; // output the information to verify that it is working. $output = “The following variables were passed in the URL string:<br /><br />”; $output .= “Variable product: ” . $product . “<br />”; $output .= “Variable category: ” . $category . “<br />”; $output .= “<br />Your mod-rewrite script seems to be working fine. Product”; echo $output; ?>
7. Sekarang coba akses file click.html > http://locahost/coba_url/click.html . kemudian klik link tersebut.
*mangut-mangut* baru ngerti