برای این کار راههای مختلفی در اینترنت وجود داره و که من به یکی از راحت ترین و بهترینشون می پردازم . راه
حل : به سایتمون فایل global.asax را اضافه می کنیم . ( کلیک راست بر روی
وب سایت ، انتخاب گزینه Add New Item… و انتخاب گزینه Global Application
Class ) . سپس درون این فایل متد زیر را اضافه می کنیم :
ابتدا باید در مورد یکی از متدهای موجود در دات نت که این امکان رو به ما
میده صحبت کنم . متد HttpContext.RewritePath() به ما این اجازه رو می ده
که به طور داینامیک آدرسی خاص که توسط مرورگر درخواست میشه رو به مسیری
جدید redirect کنیم . به عنوان مثال هر گاه آدرس http://www.mysite.com/mypage.html درخواست شد ، به آدرس http://www.mysite.com/mypage.aspx هدایت بشیم .
خب ، با دونستن این مطلب مساله رو به این شکل فرض می کنیم که : ما یک وب سایت داریم به نام www.HideExtensions.com
که این سایت حاوی یک دایرکتوری به نام Dir1 می باشد و درون این دایرکتوری
دو صفحه موجود است به نام های Page1.aspx و Page2.aspx . در root سایت هم
صفحه Default.aspx رو داریم که حاوی دو Button هست که هر یک ما رو هدایت
می کنه به یکی از دو صفحه فوق .
حالا می خوایم زمانی که به صفحه Page1.aspx میریم در نوار آدرس این تغییر بوجود بیاد :
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>
<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>
<rewriter>
<rewrite url="~/Dir1/(.+)/" to="~/Dir1/$1.aspx" />
</rewriter>
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("~/Dir1/Page1/");
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("~/Dir1/Page2/");
}