URL rewriting چیست ؟


      


         کاربران اینترنت روزانه ممکن است از ده ها آدرس اینترنتی  بازدید کنند که هر کدام از این سایت ها دارای یک آدرس اینترنتی (URL) هستند . اکثر کابران اینترنت ترجیح می دهند که این آدرسها  قابل فهم ، ساده و به خاطر نگاهداشتن آن  آسان تر باشد . برای رسیدن به این هدف برنامه نویسان و طراحان وب وظیفه دارند تا  با درست طراحی کردن این آدرسها این  امکان را برای کاربران فراهم آورند .


Url rewriting یا Rewrite engine نرم افزاری (تکنیک نرم افزاری) است برای دست یافتن به این هدف . 

برای مثال آدرس زیر شامل کویری استرینگ (Query string) است که برای مشخص کردن اینکه کدام مطلب (پست) برای کاربر نمایش داده شود ، به کار برده شده :


www.something.com/posts.aspx?type=CsConcepts&postId=5


برای اینکه کاربران از آدرس فوق درک بهتری داشته باشند و بتوانند در آینده از این آدرس برای دیدن همان مطلب استفاده کنند ، می توان آدرس فوق را به شکل زیر درآورد : 


www.something.com/posts/CsConcepts/5/


مزیت های گفته شده در بالا تنها از دید کاربران وب سایت است . در حالی که Url rewriting فواید بسیاری نیز برای برنامه نویسان یا مدیران سایت ها دارد .

فرض کنید صفحه  FAQ یک سایت در آدرس زیر قرار گرفته باشد :


www.something.com/folder/Faq.aspx


در وب سایت های بزرگ و حرفه ای امکان جابجا شدن صفحات به جاهای دیگر در سرور بسیار وجود دارد . در مثال فوق اگر مدیر سایت بنا به هر دلیلی بخواهد صفحه FAQ را در یک پوشه دیگر قرار دهد(www.something.com/newfolder/Faq.aspx) ، تکلیف کاربرانی که این صفحه را به خاطر سپرده اند و یا در Favorite مرورگر خود ذخیره کرده اند چیست؟ اگر با ASP.NET آشنا باشید می دانید چنین کاری را می توان با منتقل کردن کاربر از مکان قبلی به مکان جدید انجام داد با استفاده از متد زیر :

Response.redirect(new location);


اما اگر تعداد صفحاتی که جا به جا شده اند زیاد باشد ما باید به ازای هر کدام ، متد فوق را بنویسیم . راه حل بهتر و زیباتر استفاده از Url rewriting  است که می توان با اضافه کردن چند سینتکس به وب کانفیگ (بخش system.web) این کار را انجام داد . مثلا برای مثال بالا : 


<urlMappings enabled=”true>

<add url=~/folder/faq.aspx  mappedUrl=~/newfolder/faq.aspx”/>

</urlMappings>

این کار را انجام می دهد .


همچنین با Url rewriting می توان کار هایی که در سرور بر روی Url ها انجام می گیرد را از دید کاربران دور نگاه داشت . وقتی کاربر یک کویری استرینگ را در آدرس می بیند به راحتی متوجه می شود که برنامه نویس با این کار چه قصدی را داشته، اگر چه خیلی مهم نباشد ولی لزومی ندارد کاربران متوجه ابن موضوع بشوند و یا حتی می توان پسوند صفحات وب را از دید کاربران مخفی نگاه داشت که کاربر متوجه نشود سایت شما با چه زبان یا Framework نوشته شده است. 


همه اینها مزیت هایی است که میتوان با Url rewriting کسب کرد .


منابع


[1] : Jit N’ Run – The best of Simple Talk – ASP.NET – vol 1

[2] : http://msdn.microsoft.com/en-us/library/ms972974.aspx