PDA

View Full Version : خواندن url هاي url rewriter از ديتابيس



m110_110
چهارشنبه 08 اردیبهشت 1389, 15:52 عصر
سلام
مي خواستم در url ، rewrite url رو بجاي اينکه از web.config بخونم از مثلا ديتابيس و يا حداقل از يک فايل xml بخونم
اما هيچ راهي براش پيدا نکردم
در ضمن من از UrlRewritingNet.UrlRewriter.dll استفاده مي کنم و طريقه تعريف url ها در web.config به صورت زير است


<addname="Rewrite"virtualUrl="^~/test/(\d*)/(\d*).html"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/test/Default.aspx?language=$1&amp;id=$2"
ignoreCase="true" />

ايا کسي راهي براي اين کار مي دونه؟

m110_110
شنبه 11 اردیبهشت 1389, 21:04 عصر
سلام
واقعا دارم شک مي کنم به سوال هام
نمي دونم چرا ديگه کسي جواب نميده
گاهي مدير بخش يه جواب هايي مي داد که اون هم !!!!
واقعا کسي نمي دونه يا اينکه من بد سوال کردم؟

arashrj
یک شنبه 12 اردیبهشت 1389, 05:53 صبح
سلام
به كمك فايل Global.asax مي تونيد اين كار رو انجام بدين
مثلا:



void Application_BeginRequest(object sender, EventArgs e)
{
string CurrentPath = Request.Path.ToLower();

if (CurrentPath.StartsWith("/articles/"))
{
CurrentPath = CurrentPath.Trim("/");
string ArticleSlug = CurrentPath.Substring(CurrentPath.IndexOf("/"));
HttpContext MyContext = HttpContext.Current;
MyContext.RewritePath("/Show-Article.aspx?slug=" + ArticleSlug);
}
}



موفق باشيد

m110_110
سه شنبه 14 اردیبهشت 1389, 12:30 عصر
سلام ممنون از جوابتون
حالا نمیشه به جای این کار regular ها رو از دیتابیس بخونیم و به urlrewrite نسبت بدهیم
یعنی دقیقا
virtualUrl
و
rewriteUrlParameter
و
destinationUrl
رو بخونیم و add بکنیم؟

m110_110
چهارشنبه 15 اردیبهشت 1389, 11:45 صبح
سلام
از مدیران خواهش می کنم یه کمکی بکنند
به نظر شما بهترین راه حل چیه ؟
این رو به این خاطر می گم که یک پورتال هست و صفحتمون زیاده و تغییرات هم زیاد و نمی خوام با هر تغییر url یه دستی توی web.config ببرم چرا که کاربرانی که در حین کار هستند دچار مشکل می شوند و با تاخیر نمایش صفحات روبرو می شوند
در ضمن اینکه فایل global هم همین طور هست
(پورتال در حین کار هست و در حال تکمیل هم هست)

chaalesh
چهارشنبه 15 اردیبهشت 1389, 16:35 عصر
احتیاجی نیست از دیتا بیس برای اینکار استفاده کنید
کافیه آدرس رو معنی کنید تا بدونید که باید به چه صفحه ای بفرستید و با چه پارامتری
البته در همین بخش پارامتر شاید احتیاج به استفاده از دیتابیس داشته باشید ولی در کل لازم نیست آدرس های واقعی را در دیتابیس ذخیره کنید

برای اینکه بتونید این عمل را چه بصورتی که خودتان گفتید و چه بصورتی که من گفتم انجام دهید باید در Global.asax همانطوری که دوستمان در پاسخ های قبلی فرمودند انجام دهید با این تفاوت که شما می خواهید رشته داخل تابع RewritePath را کلا از دیتا بیس بر اساس آدرس غیر واقعی بدست آورید .

این کاملترین راه حله