UrlRewriter توسط Intelligencia.UrlRewriter
نویسنده: رضا منصوری
تاریخ: ۱۳۹۲/۰۵/۳۰ ۱۹:۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
برای استفاده، ابتدا DLL مورد نظر را دانلود و به Referencesها اضافه میکنیم؛ دانلود فایل Intelligencia.UrlRewriter.dll
دانلود آخرین نسخهی فایل از سایت مرجع: urlrewriter.net
مرحلهی بعد تنظیمات Web.Config است که به صورت زیر میباشد:
<configuration>
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>
<system.web>
<httpModules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>
</system.web>
<rewriter>
<rewrite url="^.*-T([0-9]+)/?$*" to="~/ShowTerol.aspx?ID=$1" processing="stop" />
</rewriter>
</configuration>مرحله بعد تنظیم این است که کدام لینکها بازنویسی شوند که در کدهای بالا فقط یک مدل بازنویسی وجود دارد:
<rewrite url="^.*-T([0-9]+)/?$*" to="~/ShowTerol.aspx?ID=$1" processing="stop" />
و میگوید تمام لینکهایی را که در آخر آنها T- و عدد وجود دارد، به صفحهی ShowTerol.aspx با یک کوئری استرینگ به نام ID که مقدار آن، همان عدد بعد حرف T میباشد بفرست.
یعنی این لینک را
به این لینک تبدیل میکند
ShowTerol.aspx?ID=87
<rewrite url="^.*-p([0-9]+)/?$*" to="~/Products.aspx?p=$1" processing="stop"/> <rewrite url="^.*-c([0-9]+)pa([0-9]+)/?$*" to="~/Default.aspx?c=$1&pa=$2" processing="stop"/> <rewrite url="^.*-c([0-9]+)/?$*" to="~/Default.aspx?c=$1" processing="stop"/>
الگوی تبدیلات توسط Regular Expansion
<httpModules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>
<configuration>
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>
<system.webServer>
<modules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />
</modules>
</system.webServer>
<rewriter>
<rewrite url="^.*-T([0-9]+)/?$*" to="~/ShowTerol.aspx?ID=$1" processing="stop" />
</rewriter>
</configuration> Could not find schema information for the element 'rewrite' Could not find schema information for the attribute 'url' Could not find schema information for the attribute 'to' Could not find schema information for the attribute 'processing'
<system.web>
<httpModules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>
</system.web> <system.webServer>
<modules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />
</modules>
</system.webServer> <rewrite url="~/Details/(.+)" to="~/Details.aspx?code=$1" processing="stop" />
string.Format("Details/{0}-{1}", Eval("Name").ToString().Replace(" ", "-"),Eval("id") Label1.Text =
GetProducts.Get()
.Where(x => x.Id == int.Parse(Request.QueryString["PID"].ToString()))
.Select(x => x.Name)
.FirstOrDefault(); <a href='<%# "Details/" + Eval("Name")%>'><%# Eval("Name") %></a> http://www.site.com/Product/DKP-14997/Samsung-Galaxy-S4-I9500-16GB/name
- اون DKP-14997 کد محصول است که یا منحصر بفرد تعریف شده یا کلید اصلی.
- برای حذف از تمام سایت روش friendly urls هم هست علاوه بر روش مطلب جاری.
Response.Redirect("tst.aspx?id=" + txtSrch.Text) Response.Redirect("tst/" + txtSrch.Text) <rewrite url="~/tst/(.+)" to="~/mypage.aspx?searchtxt=$1" />