Mapping Your Own ASP.NET Url

Mungkin diantara kita ada yang pernah atau bahkan sering melihat url sebuah situs dimana nama halamannya sesuai dengan title dari halaman tersebut. Hal ini sering kita temui misalnya pada blog. Url yang terlihat di address bar disesuaikan dengan title blog yang di posting tersebut. Bagaimana caranya melakukan hal tersebut?

Teknik di atas dinamakan Url Mapping atau Url Rewriting. Jadi kita bisa merubah url tujuan sesuai dengan kehendak kita. Kenapa hal tersebut sebaiknya dilakukan? Hal ini berhubungan dengan SEO (Search Engine Optimization). Ya, si search engine akan mudah untuk mengindeks halaman yang menggunakan teknik tersebut karena url nya lebih user friendly. Biasanya kalau sebuah web page dirujuk dari sebuah halaman dimana halaman tujuan membutuhkan informasi dari halaman yang merujuk maka kita lakukan dengan mengirimkan Query String. Query string ini digunakan untuk mengirimkan parameter ke sebuah web page. Contoh query string seperti ini misalnya : atau biasanya kita gunakan id sebagai query string. Url tersebut relatif lebih susah diindeks kalau dibandingkan dengan menggunakan teknik url mapping yang lebih "human readable".

Di blog engine atau CMS engine yang sudah dikenal seperti DotNet Nuke (DNN) dan CS (Community Server) teknik tersebut sudah diimplementasikan dan dapat dicustomize. Hmmm...saya berpikir bagaimana caranya saya lakukan hal tersebut di dalam asp.net web site yang saya buat from scratch? Sebenarnya fitur Url Mapping ini sudah ada semenjak asp.net 2.0 di release dan saya sudah tahu fitur tersebut semenjak asp.net 2.0 tersebut di release. Namun waktu itu yang saya tahu hanya sebatas setting url mapping secara hard coded di web.config. Lalu bagaimana caranya kalau saya ingin buat secara dinamis? saya ingin kapanpun url mapping tersebut dapat saya rubah tanpa harus buka file web.config secara manual setiap kali saya akan posting sesuatu ke blog. Repot jadinya kalau seperti itu :) dan tidak efektif...

Lalu bagaiman kalau jumlah artikel yang sudah di posting dan dimapping url nya itu jumlahnya sudah banyak? dan semuanya ditampung di web.config? wah ga kebayang banyaknya elemen yang ada di file tersebut bercampur aduk dengan setting web lainnya. Hmmm...bagaimana caranya saya split file web.config tersebut ke file .config lainnya yang buat sendiri? Mungkinkah?Mungkin sekali, dan caranya sangat-sangat simple, nanti akan saya tunjukkan :) Jadi dengan splitting elemen-elemen tertentu di web.config ke file.config lainnya kita dapat mengatur element-element tersebut dengan mudah dan tidak terlalu banyak bercampur dengan elemen lainnya.

Back to pertanyaan di atas sebelumnya, bagaimana caranya saya implementasikan teknik url mapping ini di asp.net web project yang kita buat sendiri? Kalau DNN sama CS saja bisa kenapa asp.net web site yang kita buat sendiri tidak bisa? :D Toh kedua engine tersebut sama-sama berbasiskan asp.net yang dibuat oleh framework yang sama :) ...Ok langsung saja saya jelaskan step-stepnya dibawah ini.

Skenario yang akan saya buat seperti ini : Saya buat sebuah halaman untuk posting artikel, ketika artikel tersebut disimpan ke database pada saat itu juga url baru yang akan mapping url aslinya saya simpan ke file .config lainnya yang saya buat sendiri untuk melakukan splitting elemen urlMappings yang defaultnya terdapat di file web.config. Setiap artikel yang diposting memiliki id nya tersendiri dan unik, nah id ini dijadikan sebagai query string nantinya di web page tujuan yang digunakan untuk melihat detail dari artikel tersebut. Design interfacenya dibuat sedinamis mungkin dalam artian kita bisa melakukan mapping url yang kita inginkan atau tidak, dan kalau kita lakukan mapping url apakah url baru tersebut mau disesuaikan dengan title atau dirubah lagi.

Uniknya dari teknik ini kita bisa buat url baru yang ekstensi file nya menggunakan ekstensi selain .aspx, jadi misalnya kalau kita ingin memberikan ekstensi .html atau .htm atau mungkin yang lainnya maka hal tersebut mudah sekali dilakukan :D atau mungkin kita tidak memberikan sama sekali ekstensi filenya juga bisa :) ...dari pada berpanjang lebar here it is :







lihat belajar asp.net dari nol

Postingan populer dari blog ini

vb6 msflexgrid

Tutorial Visual Basic 6.0 : Listbox in VB6

Select Single Cell in MSHFlexgrid