PDA

View Full Version : سوال: شبیه سازی url



IranVisual
دوشنبه 13 خرداد 1387, 15:43 عصر
من در مورد مخفی سازی url و querystring ها زیاد گشتم مطالب جالبی رو هم پیدا کردم اما سوال من :
حتما همتون سایت www.p30download.com رو دیدید میخوام url های صفحه خودمو مثل اون درست کنم
http://www.p30download.com/archives/internet/web_search/download_effective_file_search_full/

سار
دوشنبه 13 خرداد 1387, 15:45 عصر
http://www.google.com/search?q=asp.net+url+rewrite&rls=com.microsoft:fa&ie=UTF-8&oe=UTF-8&startIndex=&startPage=1

تو سايت هم بگردي كلي چيز در باره asp.net url rewrite هست

pouran
دوشنبه 13 خرداد 1387, 18:41 عصر
دو آدرس زیر را در نظر بگیرید

http://code.com/article.aspx?id=4&type=print

http://code.com/article-4-print.html

تنها کافیست مقداری تغییر در Web.Config دهید

<urlMappings enabled="true">
<add url="~/show-5.htm"
mappedUrl="~/show.aspx?id=5" />
</urlMappings>

دقت فرمایید تنظیمات فوق متعلق به شاخه <system.web> می باشد و باید در این بخش از Web.Config تعریف شود. در مثال بالا url آدرسی است که کاربر مشاهده می کند و mappedUrl آدرس حقیقی ماست
ابتدا فایل ضمیمه مقاله را دریافت کنید و Intelligencia.UrlRewriter.dll را به پوشه Bin پروژه خود انتقال دهید. حال مراحل زیر را جهت بازخوانی یک آدرس ثابت دنبال کنید :

فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم. همانطور که از نام این رویداد پیداست زمانی کد اجرا می شود که درخواستی به سمت موتور Asp.net ارسال شود.

if (Request.Url.ToString().Contains("show.htm"))
{
Context.RewritePath("show.aspx");
}


در این مثال محتوای صفحه ای با نام show.htm که بصورت مجازی ایجاد شده است و وجود خارجی ندارد از صفحه ای دیگر با نام show.aspx خوانده می شود.
سپس فایل web.config را باز و محتوای آن را به صورت زیر تنظیم نمایید :

<configSections>
<section name="rewriter" type="Intelligencia.UrlRewriter.Configuration. RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
</configSections>

<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>

<rewriter>
<rewrite url="show.htm" to="show.aspx"/>
</rewriter>


لطفا" به محل قرار گرفتن تغییرات دقت ویژه ای داشته باشید :


<configSections> : داخل تگ <configuration> قرار گیرد.
<httpModules> : داخل تگ <system.web> قرار گیرد.
<rewriter> : داخل تگ <configuration> و خارج و بعد از تگ<system.web> قرار گیرد.


توجه فرمایید کد کامل برنامه را نیز می توانید در انتهای برنامه دانلود نمایید.


مخفی کردن Query String :
شاید به ذهن شما رسیده باشد که چگونه می توان آدرس های مجازی دارای Query String را نیز بازنویسی کنیم. این کار نیز بسیار ساده است و تفاوتهای جزئی با مثال بالا دارد.
برای اینکار دوباره فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم :

if (Request.Url.ToString().Contains("show-(.+).htm"))
{
Context.RewritePath("show.aspx?id=$1");
}

علامت (.+) نماینده یک متغیر است که مقدار Query String را می گیرد و $1 در خط بعدی همان مقدار (.+) و نماینده مقدار Query String در آدرس حقیقی است. همچنین تگ rewrite را بصورت زیر تغییر دهید :


<rewrite url="show-(.+).htm" to="show.aspx?id=$1"/>





در صورتی که آدرس شما دارای بیش از یک پارامتر Query String است (برای مثال سه پارامتر) بصورت زیر عمل کنید :


show-(.+)-(.+)-(.+).htm






Show.aspx?Page=$1&amp;Id=$2&amp;state=$3



دقت کنید که در بازخوانی آدرسهای با چندین پارامتر Query String در قسمت آدرس حقیقی قبل از & ، amp; را قرار دهید. در ضمن برای بازخوانی مقدار Query String نیاز به کد نویسی خاصی نیست و با در نظر گرفتن مثال فوق بعد از UrlRewriting با دستور زیر در صفحه show.aspx می توانیم مقدار Query String را بخوانیم :



Response.Write((string)Request.QueryString["id"]);

milade
سه شنبه 14 خرداد 1387, 20:42 عصر
ایا راهی هست که مثلا بگیم تمام فایلهای .aspx به htm. تبدیل بشن چون اگه بخوایم برای هر کدوم یه خط بنویسیم یه سایت با حداقل 100 تا لینک این طوری سرعتش خیلی افت می کنه

Behrouz_Rad
سه شنبه 14 خرداد 1387, 22:07 عصر
ایا راهی هست که مثلا بگیم تمام فایلهای .aspx به htm. تبدیل بشن چون اگه بخوایم برای هر کدوم یه خط بنویسیم یه سایت با حداقل 100 تا لینک این طوری سرعتش خیلی افت می کنه

بله. اگر از RegEx استفاده کنید به راحتی امکان پذیر هست. قبلا در موردش توضیح خواسته بودی. جستجو کنی مطالب خوبی پیدا می کنی.

موفق باشی.

naeemeh
پنج شنبه 16 خرداد 1387, 10:15 صبح
دو آدرس زیر را در نظر بگیرید

http://code.com/article.aspx?id=4&type=print

http://code.com/article-4-print.html

تنها کافیست مقداری تغییر در Web.Config دهید

<urlMappings enabled="true">
<add url="~/show-5.htm"
mappedUrl="~/show.aspx?id=5" />
</urlMappings>

دقت فرمایید تنظیمات فوق متعلق به شاخه <system.web> می باشد و باید در این بخش از Web.Config تعریف شود. در مثال بالا url آدرسی است که کاربر مشاهده می کند و mappedUrl آدرس حقیقی ماست
ابتدا فایل ضمیمه مقاله را دریافت کنید و Intelligencia.UrlRewriter.dll را به پوشه Bin پروژه خود انتقال دهید. حال مراحل زیر را جهت بازخوانی یک آدرس ثابت دنبال کنید :

فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم. همانطور که از نام این رویداد پیداست زمانی کد اجرا می شود که درخواستی به سمت موتور Asp.net ارسال شود.

if (Request.Url.ToString().Contains("show.htm"))
{
Context.RewritePath("show.aspx");
}


در این مثال محتوای صفحه ای با نام show.htm که بصورت مجازی ایجاد شده است و وجود خارجی ندارد از صفحه ای دیگر با نام show.aspx خوانده می شود.
سپس فایل web.config را باز و محتوای آن را به صورت زیر تنظیم نمایید :

<configSections>
<section name="rewriter" type="Intelligencia.UrlRewriter.Configuration. RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
</configSections>

<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>

<rewriter>
<rewrite url="show.htm" to="show.aspx"/>
</rewriter>


لطفا" به محل قرار گرفتن تغییرات دقت ویژه ای داشته باشید :


<configSections> : داخل تگ <configuration> قرار گیرد.
<httpModules> : داخل تگ <system.web> قرار گیرد.
<rewriter> : داخل تگ <configuration> و خارج و بعد از تگ<system.web> قرار گیرد.


توجه فرمایید کد کامل برنامه را نیز می توانید در انتهای برنامه دانلود نمایید.


مخفی کردن Query String :
شاید به ذهن شما رسیده باشد که چگونه می توان آدرس های مجازی دارای Query String را نیز بازنویسی کنیم. این کار نیز بسیار ساده است و تفاوتهای جزئی با مثال بالا دارد.
برای اینکار دوباره فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم :

if (Request.Url.ToString().Contains("show-(.+).htm"))
{
Context.RewritePath("show.aspx?id=$1");
}

علامت (.+) نماینده یک متغیر است که مقدار Query String را می گیرد و $1 در خط بعدی همان مقدار (.+) و نماینده مقدار Query String در آدرس حقیقی است. همچنین تگ rewrite را بصورت زیر تغییر دهید :


<rewrite url="show-(.+).htm" to="show.aspx?id=$1"/>





در صورتی که آدرس شما دارای بیش از یک پارامتر Query String است (برای مثال سه پارامتر) بصورت زیر عمل کنید :



show-(.+)-(.+)-(.+).htm






Show.aspx?Page=$1&amp;Id=$2&amp;state=$3



دقت کنید که در بازخوانی آدرسهای با چندین پارامتر Query String در قسمت آدرس حقیقی قبل از & ، amp; را قرار دهید. در ضمن برای بازخوانی مقدار Query String نیاز به کد نویسی خاصی نیست و با در نظر گرفتن مثال فوق بعد از UrlRewriting با دستور زیر در صفحه show.aspx می توانیم مقدار Query String را بخوانیم :




Response.Write((string)Request.QueryString["id"]);


با تشكر از توضيحات شما من پروژه شما را وقتي به حالت filesystem در vs2005 باز مي كنم كاملاً درست است ولي وقتي در پروژه هاي داخل IIS(LOCALHOST) اجرا مي كنم اجرا نمي شود و عمل نمي كند .

pouran
پنج شنبه 16 خرداد 1387, 10:43 صبح
به طور مثال می خواهیم آدرس صفحات را بصورت زیر بازنویسی کنیم .

http://www.code.com/index.aspx?softid=5
http://www.code.com/soft-5.aspx

راه ساده تری هم وجود دارد که استفاده از فایل Global.asax است . در محیط ویژال استودیو 2005 بر روی
پروژه ی خود کلیک راست کنید و بوسیله ی Add new item فایل Global را به سایت اضافه کنید .
سپس فایل Global را باز کنید و در رخداد Application_BeginRequest دستورات زیر را وارد کنید :



protected void Application_BeginRequest(object sender, EventArgs e)
{
string url = Context.Request.Url.AbsolutePath;
if (url.Contains("ads-"))
{
System.Text.RegularExpressions.Match myMatch = Regex.Match(url, @"soft-\d+.aspx");
string urlSplit = myMatch.Value;
urlSplit = urlSplit.Replace("soft-", "");
urlSplit = urlSplit.Replace(".aspx", "");
Context.RewritePath("~/index.aspx?softid=" + urlSplit);
}
}

pouran
پنج شنبه 16 خرداد 1387, 10:54 صبح
آدرس ما به صورت زیر است :
http://www.code.com/default.aspx?queryString1=AAA&queryString1=BBB
و این AAA و BBB نماینده مقادیری است که با عوض شدن آنها محتوی صفحه عوض میشود . اما اگر ندانید تعجب میکنید وقتی به شما بگویم میتوانید آدرس همین صفحه را به صورت زیر داشته باشید :
http://www.code.com/AAA/BBB.aspx
به این کار URL rewriting میگویند که ما آن را به فارسی باز نویسی آدرس صفحات ترجمه کرده ایم . اگر بخواهید به طور متمرکز روی این مبحث کارکنید مطالب بسیار زیادی را باید در این رابطه بدانید که در حوصله این مقاله نمیگنجد . اسکات میچل (Scott Mitchell) در 4GuysFromRolla.com مقاله کاملی دارد که نسخه ای از آن نیز در MSDN آمده است است و در آن کاملا توضیح میدهد که این عمل چگونه صورت میگیرد و بعد از آن چه اتفاتی در سرور می افتد و ... ولی من سعی دارم به شما مختصر و مفید توضیح دهم که چگونه با ریفرنس کردن 2 dll که توسط آقای میچل عرضه شده است میتوانید آدرس صفحات خود را بازنویسی کنید .
قبل از آن توضیح این نکته بد نیست که در asp.net 2 این امکان به صورت پیش ساخته آماده شده است که البته شامل محدودیت است و نمیتوانید آدرس دهی پویا را توسط آن -اینطور که در این مقاله انجام میدهیم - انجام دهید.
ابتدا و برای شروع dll ها را از اینجا (http://www.persiandev.net/files/URL_Rewriting.zip)دانلود کنید . سپس آنها را به عنوان مرجع جدید رد پروژه خود reference کنید (از solution bar روی قسمت references رایت کلیک کنید و add reference را انتخاب کنید و...)
با این کار شما تقریبا تمام کار را انجام داده اید ! میماند اینکه تعریف کنید چه آدرس هایی را به چه آدرس هایی باید تبدیل کرد . فرض کنید کاربر در مرورگر خود آدرس http://www.code.com/AAA/BBB.aspx را وارد میکند ، در صورتی که چنین صفحه ای روی سرور شما وجود خارجی ندارد و برنامه شما باید متوجه شود که نمایش صفحه ای با آدرس زیر مد نظر است .
http://www.code.com/default.aspx?queryString1=AAA&queryString1=BBB
برای این کار کافی است از رگولار اکسپرشن (Regular Expression ) استفاده کنیم .نگران نباید حتی اگر از Regular Expression سر در نمی‌آورید در این مقاله به آن اندازه که احتمالا برای این کار نیاز دارید را در ادامه خواهید دید. اگر خواستید کد های زیر را کپی پیست کنید و در وب گانفیگ خود اسنفاده کنید حتما متون فارسی که با رنگ سبز نوشته شده است را حذف کنید . در غیر این صورت به ایراد بر خواهید خورد.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSection Handler, URLRewriter" />
</configSections>

<RewriterConfig>
<Rules>
<!-- Rules for Blog Content Displayer -->

در قسمت زیر به دنبال صفحه ای به صورت G123456.aspx میگردد ، 123456 حتما باید یک عدد 6 رقمی باشد که همانطور که مشاهده میکنید در کوئری استرینگ به bID نسبت داده شده است .

<RewriterRule>
<LookFor>~/G(\d{6}).aspx</LookFor>
<SendTo><![CDATA[~/default.aspx?PageID=554&bID=$1]]></SendTo>
</RewriterRule>

در قسمت زیر به دنبال صفحه ای به صورت G123456P123456.aspx میگردد ، 123456 حتما باید یک عدد 6 رقمی باشد که همانطور که مشاهده میکنید در کوئری استرینگ به ترتیب به bID , pID نسبت داده شده است .

<RewriterRule>
<LookFor>~/G(\d{6})p(\d{6})\.aspx</LookFor>
<SendTo><![CDATA[~/page.aspx?PageID=555&bID=$1&pID=$2]]></SendTo>
</RewriterRule>

در قسمت زیر به دنبال صفحه ای به صورت G123456P123456.aspx میگردد ، 123456 حتما باید یک عدد 6 رقمی باشد که همانطور که مشاهده میکنید در کوئری استرینگ به ترتیب به bID , pID نسبت داده شده است .

<RewriterRule>
<LookFor>~/G(\d{6})A(.*).aspx</LookFor>
<SendTo><![CDATA[~/default.aspx?PageID=555&BlogID=$1&Archive=$2]]></SendTo>
</RewriterRule>

در قسمت زیر به دنبال صفحه ای به صورت زیر میگردد :
1234/12/12.aspx

<RewriterRule>
<LookFor>~/(\d{4})/(\d{2})/(\d{2})\.aspx</LookFor>
<SendTo>~/ShowBlogContent.aspx?year=$1&amp;month=$2&amp;day=$3</SendTo>
</RewriterRule>

<RewriterRule>
<LookFor>~/(\d{4})/Default\.aspx</LookFor>
<SendTo>~/ShowBlogContent.aspx?year=$1</SendTo>
</RewriterRule>

چندین مثل بسیار ساده تر نیز آورده شد است


<RewriterRule>
<LookFor>~/Products/Default\.aspx</LookFor>
<SendTo>~/ListCategories.aspx</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Products/Beverages\.aspx</LookFor>
<SendTo>~/default.aspx?CategoryID=1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Products/Condiments\.aspx</LookFor>
<SendTo>~/ListProductsByCategory.aspx?CategoryID=2</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Products/Confections\.aspx</LookFor>
<SendTo>~/ListProductsByCategory.aspx?CategoryID=3</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Products/Dairy\.aspx</LookFor>
<SendTo>~/ListProductsByCategory.aspx?CategoryID=4</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Products/GrainsCereals\.aspx</LookFor>
<SendTo>~/ListProductsByCategory.aspx?CategoryID=5</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Products/MeatPoultry\.aspx</LookFor>
<SendTo>~/ListProductsByCategory.aspx?CategoryID=6</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Products/Produce\.aspx</LookFor>
<SendTo>~/ListProductsByCategory.aspx?CategoryID=7</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Products/Seafood\.aspx</LookFor>
<SendTo>~/ListProductsByCategory.aspx?CategoryID=8</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<system.web>


...از اینجا به بعد web.config مانند قبل ادامه پیدا میکند
فقط یک نکته می ماند آن هم اینکه وقتی فرمی پست بک میشود به آدرس اصلی خود باز میگردد ، این موضوع برای کاربر صورت خوشی ندارد . تصور کنید که کاربر فقط با کلیک یک دکمه میبیند آدرس صفحه کاملا عوض شده و به آدرسی طولانی و نا مفهوم بدل شده است در صورتی که محتوی صفحه کماکان محتوی صفحه قبلی است . اسکات به این مشکل هم اندیشیده است . کلیک کار اضافه کردن کد زیر به بالای صفحات :



<%@ Register TagPrefix="skm" Namespace="ActionlessForm"
Assembly="ActionlessForm" %>


و سپس استفاده از :


<skm:Form id="Form1" method="post" runat="server">


بجای <form runat="server> که همیشه استفاده میشود است .


در این مقاله آموختیم که چگونه با اضافه کردن چند خط در web.config و همینطور ریفرنس کردن 2 dll میتوانیم در asp.net آدرس ها را بازنویسی کنیم .

Himalaya
پنج شنبه 16 خرداد 1387, 12:34 عصر
من از تنظیمات web.config و ... استفاده کردم (همون چیزهایی که تو بالا قرار دادید)
یه پروژه هم تو این زمینه یکی از دوستان لطف کردن و گذاشتن تو یه تاپیک ...
دقیقا کارای اونو انجام دادم همه چیز درست بود الا زمانی که
وقتی من یه لینک یه یکی از صفحاتم داشتم ، آدرس صفحه مقصد تغییر میکرد به اون چیزی که من میخواستم ... تا اینجا همه چیز درسته ولی اگه من تو صفحه مقصد مثلا یک دکمه
(از دکمه های خود vs )
(asp:button) داشته باشم که با اون visible یک مثلا پنل رو true و واسه یکی دیکه رو false
کنم (تو همون صفحه مقصد) آدرس اصلی صفحه ظاهر میشه
گفتم شاید ایراد از پروژه منه .. رفتم تو همون پروژه که واسه سایت code project بود
یک دکمه <asp:button> انداختم (تو صفحه مقصد) و وقتی روش کلیک میکردم دوباره آدرس اصلی ظاهر میشد
ممنون میشم راهنماییم کنید

IranVisual
پنج شنبه 16 خرداد 1387, 20:35 عصر
ممنون از همه بچه ها ولی چیزی که من میخواستم این نیست ببینین تو این لینکی که من گزاشتم هیچ نام و پسوندی از صفحه رو نمایش نمیده من میخوام این جوری url ها رو درست کنم
http://www.p30download.com/archives/internet/web_search/download_effective_file_search_full/

pouran
پنج شنبه 16 خرداد 1387, 22:40 عصر
دوست عزیز به این لینک یه سری بزن:

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

amin727
جمعه 17 خرداد 1387, 17:36 عصر
mvc باید از routing استفاده کنید، به وبلاگ scot gu مراجعه کنید چون تازه preview 3 منتشر شده... شما اینجوری میخوای...
www.barnamenevis.org/farvardin/article/asp/hasan
به جای
www.barnamenevis.org/farvardin.aspx?cat=article&group=asp&author=hasan
,ویدیو های آموزشی انجام این کار با استفاده از ASP.NET MVC Framework هم تو سایت ASP.net است...

Behrouz_Rad
جمعه 17 خرداد 1387, 23:03 عصر
MVC نیاز نیست. MVC کل معماری پروژه رو تحت تاثیر قرار میده. Url Rewrting که روشش در این تاپیک توضیح داده شده کفایت می کنه.

موفق باشید.

a_true_2004
شنبه 23 شهریور 1387, 12:35 عصر
سلام

ابتدا و برای شروع dll ها را از اینجا (http://www.persiandev.net/files/URL_Rewriting.zip)دانلود کنید .
این لینک خرابه. اگه کسی داره بذاره چون شدیداً بهش نیاز دارم.

rd1975
شنبه 03 اسفند 1387, 13:01 عصر
جناب آقای راد
من قبلا یه بحثی رو شنیده بودم راجع به اینکه سایتهایی مثل cnn.com که مطالبشون دائم خوانده میشه برای کاهش بار پردازشی روی سرور از تکنیکی استفاده می کنن که اولین بار که درخواستی برای نمایش یک خبر به سرور ارسال میشه سرور صفحه مورد نظر رو بصورت html تولید می کنه و ذخیره می کنه از این به بعد هنگامی که همون درخواست به سرور ارسال میشه اون صفحه html (بدون پردازش) نمایش داده میشه این موضوع با موضوع url rewriting یکیه؟؟ چون در این مبحث فقط آدرسها بازنویسی میشن!!

milade
شنبه 03 اسفند 1387, 18:55 عصر
سلام
اول تاپیک قدیمی رو بالا نیارید !
دوم خیر . از مبحش Caching استفاده میکنه ( جستجو کن توضیح داده شده طی 10 روز پیش حتی ! )
موفق باشید

RoostaYeBekr
شنبه 03 اسفند 1387, 20:05 عصر
با سلام
:لبخندساده:
با توجه به اینکه سوال این تاپیک مخفی سازی url و احتمالا مخفی کردنaspx بوده ، به نظرم هنوز این مشکل کاملا برطرف نشده و آن این است که وقتی که روی صفحه ی show-5 کلیک راست می کنیم ، و viewsource را می زنیم ، می بینیم که نوشته :


<form name="form1" method="post" action="show.aspx?id=5" id="form1">

milade
شنبه 03 اسفند 1387, 20:43 عصر
سلام
خوب شما فرم رو به show.aspx?id=2 پست کردی و مثلا اگه Url Rewrite کردی به show-2.aspx ، اگه توی Action Rewrite شده رو هم بزنی مشکلی نیست .
احتمالا این مال قبلا" هست که از Rewrite استفاده نمیکرده !
موفق باشید

RoostaYeBekr
شنبه 03 اسفند 1387, 22:59 عصر
سلام
خوب شما فرم رو به show.aspx?id=2 پست کردی و مثلا اگه Url Rewrite کردی به show-2.aspx ، اگه توی Action Rewrite شده رو هم بزنی مشکلی نیست .
احتمالا این مال قبلا" هست که از Rewrite استفاده نمیکرده !
موفق باشید
سلام
راستش توضیحاتتان اصلا برای من مفهوم نبود. البته شاید دیگران متوجه شدند.
:گیج:
من منظورم در آن فایلی است که در همین تاپیک فرستادند. یعنی فایل UrlRewriting.zip .

iran400
یک شنبه 04 اسفند 1387, 21:35 عصر
من در مورد مخفی سازی url و querystring ها زیاد گشتم مطالب جالبی رو هم پیدا کردم اما سوال من :
حتما همتون سایت www.p30download.com رو دیدید میخوام url های صفحه خودمو مثل اون درست کنم
http://www.p30download.com/archives/internet/web_search/download_effective_file_search_full/

سلام عليكم
خيلي ساده است
تقريبا تمامي راهنمائي كه دوستان كردند جواب شما نبود به اين دليل كه در آخر بايد پسوند aspx بيايد دقيقا همون اتفاقي كه در بالا نيفتاده :)
خوب خيلي ساده است ديگه
شما براي اينكه به حالتي مثل بالا برسيد از هيچ كدوم روشها نمي‌خواهد استفاده كنيد.
توي iis گزينه custom errors و ارور 404 را انتخاب و كليد اديت را بزنيد. گزينه url را انتخاب و در تكست باكس default.aspx به تغيير دهيد.
حالا يك تست بزنيد به بينيد چه اتفاقي افتاده است :)

ISFAHAN
دوشنبه 10 فروردین 1388, 00:54 صبح
یک مشکل ... من بعد از urlrewriting تمام عکس ها به هم می ریزه ... هر جور هم آدرس دهی می کنم به مشکل بر می خورم ... مگر اینکه از روت شروع کنم ... آیا راه حلی هست که این اتفاق نیافته ؟
man addresse http://mysite.com/default.aspx?safhe=pages&id=2
را به
http://mysite.com/pages/2.html
تبدیل کردم ... آیا راه حلی هستش که بفهمانم تصاویر را از زیر شاخه pages لود نکند و از روت بخواهد ... می خوام کمترین دردسر را داشته باشه آخه پروژم فایل های زیادی داره که در آدرس دهی عکس ها دخیل هستند ... ؟!!!

m.hamidreza
دوشنبه 10 فروردین 1388, 21:36 عصر
یک مشکل ... من بعد از urlrewriting تمام عکس ها به هم می ریزه ... هر جور هم آدرس دهی می کنم به مشکل بر می خورم ... مگر اینکه از روت شروع کنم ... آیا راه حلی هست که این اتفاق نیافته ؟
man addresse http://mysite.com/default.aspx?safhe=pages&id=2
را به
http://mysite.com/pages/2.html
تبدیل کردم ... آیا راه حلی هستش که بفهمانم تصاویر را از زیر شاخه pages لود نکند و از روت بخواهد ... می خوام کمترین دردسر را داشته باشه آخه پروژم فایل های زیادی داره که در آدرس دهی عکس ها دخیل هستند ... ؟!!!

در آدرس دهی مسیر عکس ها از ~ استفاده کن.


<asp:image imageurl="~/images/logo.jpg" runat="server"/>

موفق باشی.

razaghi
جمعه 02 مهر 1389, 10:52 صبح
من مسیر آدرس عکس یه این صورت گذاشتم
<img src="~/Images/home.gif" border="0"/>
دیگه تصویر را در حالت عادی هم نشان نمی دهد. آدرس عکس به این صورت شده
http://local/test/~/~/Images/home.gif

m.hamidreza
جمعه 02 مهر 1389, 12:34 عصر
اون مثالی که من زدم برای کنترل های سرورساید بود نه HTMLای. تست کنید نیتجه رو خبر بدین.
موفق باشید.

razaghi
شنبه 03 مهر 1389, 08:58 صبح
من یک ImageButton داشتم جواب نداد.
<asp:ImageButton id="SearchBtn" runat="server" ImageUrl="~/Images/search.gif"></asp:ImageButton>
وقتی rewrite میشه تصویر نشان نمی دهد. در view source کنترل به این صورت است:
<input type="image" name="ctl00$SearchBtn" id="ctl00_SearchBtn" src="Images/search.gif" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$SearchBtn&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" style="border-width:0px;" />

razaghi
شنبه 03 مهر 1389, 12:13 عصر
برای تصاویر و کنترلهای serverside این موردی که شما گفتید حل می کنه.
فقط برای تگهای script درست نمی شه.
<script language="JavaScript" src="stm31.js" type="text/javascript"></script>
چه کار باید بکنم؟

mehdi-ghafari
دوشنبه 25 بهمن 1389, 19:59 عصر
دو آدرس زیر را در نظر بگیرید

http://code.com/article.aspx?id=4&type=print

http://code.com/article-4-print.html تنها کافیست مقداری تغییر در Web.Config دهید

<urlMappings enabled="true">
<add url="~/show-5.htm"
mappedUrl="~/show.aspx?id=5" />
</urlMappings>
دقت فرمایید تنظیمات فوق متعلق به شاخه <system.web> می باشد و باید در این بخش از Web.Config تعریف شود. در مثال بالا url آدرسی است که کاربر مشاهده می کند و mappedUrl آدرس حقیقی ماست
ابتدا فایل ضمیمه مقاله را دریافت کنید و Intelligencia.UrlRewriter.dll را به پوشه Bin پروژه خود انتقال دهید. حال مراحل زیر را جهت بازخوانی یک آدرس ثابت دنبال کنید :

فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم. همانطور که از نام این رویداد پیداست زمانی کد اجرا می شود که درخواستی به سمت موتور Asp.net ارسال شود.

if (Request.Url.ToString().Contains("show.htm"))
{
Context.RewritePath("show.aspx");
}

در این مثال محتوای صفحه ای با نام show.htm که بصورت مجازی ایجاد شده است و وجود خارجی ندارد از صفحه ای دیگر با نام show.aspx خوانده می شود.
سپس فایل web.config را باز و محتوای آن را به صورت زیر تنظیم نمایید :

<configSections>
<section name="rewriter" type="Intelligencia.UrlRewriter.Configuration. RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
</configSections>

<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>

<rewriter>
<rewrite url="show.htm" to="show.aspx"/>
</rewriter>

لطفا" به محل قرار گرفتن تغییرات دقت ویژه ای داشته باشید :


<configSections> : داخل تگ <configuration> قرار گیرد.
<httpModules> : داخل تگ <system.web> قرار گیرد.
<rewriter> : داخل تگ <configuration> و خارج و بعد از تگ<system.web> قرار گیرد.


توجه فرمایید کد کامل برنامه را نیز می توانید در انتهای برنامه دانلود نمایید.


مخفی کردن Query String :
شاید به ذهن شما رسیده باشد که چگونه می توان آدرس های مجازی دارای Query String را نیز بازنویسی کنیم. این کار نیز بسیار ساده است و تفاوتهای جزئی با مثال بالا دارد.
برای اینکار دوباره فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم :

if (Request.Url.ToString().Contains("show-(.+).htm"))
{
Context.RewritePath("show.aspx?id=$1");
}
علامت (.+) نماینده یک متغیر است که مقدار Query String را می گیرد و $1 در خط بعدی همان مقدار (.+) و نماینده مقدار Query String در آدرس حقیقی است. همچنین تگ rewrite را بصورت زیر تغییر دهید :


<rewrite url="show-(.+).htm" to="show.aspx?id=$1"/>


در صورتی که آدرس شما دارای بیش از یک پارامتر Query String است (برای مثال سه پارامتر) بصورت زیر عمل کنید :


show-(.+)-(.+)-(.+).htm






Show.aspx?Page=$1&amp;Id=$2&amp;state=$3

دقت کنید که در بازخوانی آدرسهای با چندین پارامتر Query String در قسمت آدرس حقیقی قبل از & ، amp; را قرار دهید. در ضمن برای بازخوانی مقدار Query String نیاز به کد نویسی خاصی نیست و با در نظر گرفتن مثال فوق بعد از UrlRewriting با دستور زیر در صفحه show.aspx می توانیم مقدار Query String را بخوانیم :



Response.Write((string)Request.QueryString["id"]);



سلام و تشکر از راهنمایی بسیار مفید شما
می خواستم بدونم چرا شما هم تو فایل پیکربندی و هم تو فایل Global این تنظیمات رو انجام دادید
این سوال از وقتی برای من پیش اومد که وقتی داشتم روی نمونه ای که شما گذاشتید کار می کردم و تغییراتی ایجاد می کردم، متوجه شدم که فقط داشتم تغییرات رو روی فایل web.config انجام می دادم و فایل global رو فراموش کرده بودم. این در حالی بود که برنامه عالی کار می کرد و هیچگونه مشکلی بوجود نیومد
اگر فکر می کنید که نیاز به تنظیم این دوفایل نیست تا با خیال راحت فقط روی فایل پیکربندی مانور بدیم؟!

و دوم اینکه منم مشکل دوستان رو دارم / فایل های استایل شیت رو نمیخونه
البته تو ویو سورس تمام آدرس ها درست هست چون من cssها رو توی پوشه App_Themes گذاشتم و به صفحه معرفی کردم
ولی تو خروجی نه عکس ها لود میشن و نه فایل های استایل شیت
اگر یه راهنمایی کوچوله بفرمائید ممنون میشم

مجددا سپاسگزارم از کد خوبتون

mehdi-ghafari
دوشنبه 02 اسفند 1389, 03:21 صبح
دوستان برای این مشکل لود نشدن عکس و استایل شیت ها راه حلی ندارید؟

si6arp
یک شنبه 15 اسفند 1389, 01:00 صبح
mvc باید از routing استفاده کنید، به وبلاگ scot gu مراجعه کنید چون تازه preview 3 منتشر شده... شما اینجوری میخوای...
www.barnamenevis.org/farvardin/article/asp/hasan
به جای
www.barnamenevis.org/farvardin.aspx?cat=article&group=asp&author=hasan
,ویدیو های آموزشی انجام این کار با استفاده از ASP.NET MVC Framework هم تو سایت ASP.net است...



با سلام خدمت شمات دوست عزیز من از این روش استفاده کردم خیلی جالب و خوب و مفید بود تنها ایراد این روش این است که با کاراکتر های فارسی مشکل داره
کاراکتر های انگلیسی رو خوب جواب میده ولی فارسی....
مثلا : http://www.mysite.com/page/2 رو خوب جواب میده
ولی این : http://www.mysite.com/page/دو
رو جواب نمیده..... . جریان چیه ؟

mehdi-ghafari
یک شنبه 15 اسفند 1389, 04:23 صبح
آقای/خانم si6arp
شما با لود تصاویر و فایلهای استایل شیت مشکلی ندارید با استفاده از این روش؟
من هم استفاده کردم دقیقاً همون راهی رو که دوستان گفتم هم رفتم ولی استایل شیتها لود نمیشن؟؟؟؟
چراش رو نمی دونم
اگه شما یه راهنمایی بفرمائید ممنون میشم.:تشویق:

si6arp
یک شنبه 15 اسفند 1389, 10:41 صبح
شما باید ار دستور ResolveUrl استفاده کنی . به این صورت »


<img src="<%=ResolveUrl("~/images/nav_01.gif")%>">


حالا بجای عکس یا هر چیز دیگه که میخواین استفاده کنید فقط کافیه به همون شکل آدرس دهی کنید.
این از مشکل شما.
آقا یکی مشکل منو حل کنههههههههههههههههههههههه هههههه تروخدااااااااااااااااا .............. چرا حروف فارسی رو ساپورت نمیکنههههههه ؟؟؟؟؟

si6arp
یک شنبه 15 اسفند 1389, 11:05 صبح
ایوللللللللللللللللللللل با پست اولی خوب مشکل من هم حل شد. ( بروی IIS6 و افزودن aspnet_isapi.dll و اکستنشن HTML. به مپینگ وب اصلی)..........

mehdi-ghafari
یک شنبه 15 اسفند 1389, 16:33 عصر
شما باید ار دستور ResolveUrl استفاده کنی . به این صورت »


<img src="<%=ResolveUrl("~/images/nav_01.gif")%>">


حالا بجای عکس یا هر چیز دیگه که میخواین استفاده کنید فقط کافیه به همون شکل آدرس دهی کنید.
این از مشکل شما.
آقا یکی مشکل منو حل کنههههههههههههههههههههههه هههههه تروخدااااااااااااااااا .............. چرا حروف فارسی رو ساپورت نمیکنههههههه ؟؟؟؟؟
آخه من یه تم ایجاد کردم و فایلهای css رو توی اون قرار دادم. و این تم رو هم تو web.config ثبت کردم:ناراحت:
نمیتونم از resolveUrl استفاده کنم:افسرده:

mehdi-ghafari
یک شنبه 15 اسفند 1389, 16:42 عصر
شما باید ار دستور ResolveUrl استفاده کنی . به این صورت »


<img src="<%=ResolveUrl("~/images/nav_01.gif")%>">


حالا بجای عکس یا هر چیز دیگه که میخواین استفاده کنید فقط کافیه به همون شکل آدرس دهی کنید.
این از مشکل شما.
آقا یکی مشکل منو حل کنههههههههههههههههههههههه هههههه تروخدااااااااااااااااا .............. چرا حروف فارسی رو ساپورت نمیکنههههههه ؟؟؟؟؟
آخه من یه تم ایجاد کردم و فایلهای css رو توی اون قرار دادم. و این تم رو هم تو web.config ثبت کردم:ناراحت:
نمیتونم از resolveUrl استفاده کنم:افسرده:

alialirezaee1
یک شنبه 09 بهمن 1390, 10:40 صبح
سلام دوستان.
من از Context.RewritePath كه استفاده مي كنم در كامپيوتر خودم كار مي كنه مشكلي هم ندارم
index.aspx?post=p1 را به p1.aspx/~ تبديل مي كنم و خوب كار مي كنه.
ولي وقتي تو سايت upload مي كنم كار نمي كنه و ارور The resource cannot be found. ميده

لطفا راهنماييم كنيد

مرسي

si6arp
یک شنبه 09 بهمن 1390, 23:00 عصر
با مدیر سرور - هاست تماس بگیرید و بپرسید که ورژن .Net که هاست ساپورت میکنه چند هست . ان را به ورژن 4 تغییر دهید و از آپلود کامل وبسایت اطمینان کامل حاصل نمایید

programer-ir
دوشنبه 10 بهمن 1390, 10:51 صبح
این قدر کد های اضافه لازم نیست....... پی سی دانلود از url routing استفاده کرده...

hobab-theme
دوشنبه 10 بهمن 1390, 11:17 صبح
روش استفاده از Url Routing

1. تغییرات زیر را در فایل Global.ascx ایجاد کنید :
Sub InitializeRoutes(ByVal routes As RouteCollection)
' ... perform route registration
routes.MapPageRoute(....)
End Sub

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs on application startup
InitializeRoutes(RouteTable.Routes)
End Sub

حالا بسته به نیاز خود می توانید آدرس های خود را اضاف کنید :
routes.MapPageRoute("", "about", "~/About.aspx") ' anonymous route
routes.MapPageRoute("login", "login", "~/Login.aspx") ' named route (login)
routes.MapPageRoute("logout", "logout", "~/Logoff.aspx") ' named route (login)


خوب حالا برای استفاده در صفحات aspx کافی آدرس اونها رو به این شکل بدست بیاریم و به لینکهامون بدیم :

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="<%$ RouteUrl:RouteName=login OR logout %>">Text</asp:HyperLink>

کار تمومه. از آدرس های زیبای خود لذت ببرید:چشمک:

aspismylove
دوشنبه 10 بهمن 1390, 11:37 صبح
روش استفاده از Url Routing

1. تغییرات زیر را در فایل Global.ascx ایجاد کنید :
Sub InitializeRoutes(ByVal routes As RouteCollection)
' ... perform route registration
routes.MapPageRoute(....)
End Sub

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' Code that runs on application startup
InitializeRoutes(RouteTable.Routes)
End Sub

حالا بسته به نیاز خود می توانید آدرس های خود را اضاف کنید :
routes.MapPageRoute("", "about", "~/About.aspx") ' anonymous route
routes.MapPageRoute("login", "login", "~/Login.aspx") ' named route (login)
routes.MapPageRoute("logout", "logout", "~/Logoff.aspx") ' named route (login)


خوب حالا برای استفاده در صفحات aspx کافی آدرس اونها رو به این شکل بدست بیاریم و به لینکهامون بدیم :

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="<%$ RouteUrl:RouteName=login OR logout %>">Text</asp:HyperLink>

کار تمومه. از آدرس های زیبای خود لذت ببرید:چشمک:

دوست عزیز این روشی که شما گفتید ، وقتی سایت و آپ کنم اررور نمیده ؟
آخه روشهای قبلی ای که دوستان گفتند من انجام دادم اررور میده .

راستی یک سو،ال من دارم که خیلی درگیرش شدم و دوستان گفتند که باید از Regular Experssion استفاده کنی که من هم هیچی بلد نیستم ، اون هم اینه که :

اگه بخام آدرسی که توی روت برنامه هستش اینطودی نمایش داده بشه چی : www.test.com/pages/index
در صورتیکه آدرس اصلی اینه : www.test.com/default.aspx

ممنون میشم راهنمایی کنید :قلب:

hobab-theme
دوشنبه 10 بهمن 1390, 12:36 عصر
دوست عزیز این روشی که شما گفتید ، وقتی سایت و آپ کنم اررور نمیده ؟
در صورتی که هاست شما دات نت 4 رو پشتیبانی کنه خیر هیچ مشکلی پیش نمیاد

اگه بخام آدرسی که توی روت برنامه هستش اینطودی نمایش داده بشه چی : www.test.com/pages/index (http://www.test.com/pages/index)
در صورتیکه آدرس اصلی اینه : www.test.com/default.aspx (http://www.test.com/default.aspx)
طبق مثالهای ذکر شده باید در فایل Global.ascx این رو اضاف کنید :
routes.MapPageRoute("", "pages/index", "~/Default.aspx")

موفق باشید

alialirezaee1
چهارشنبه 12 بهمن 1390, 17:27 عصر
اين مشكل قبلي من بود كه حل شد

من از Context.RewritePath كه استفاده مي كنم در كامپيوتر خودم كار مي كنه مشكلي هم ندارم
index.aspx?post=p1 را به p1.aspx/~ تبديل مي كنم و خوب كار مي كنه.
ولي وقتي تو سايت upload مي كنم كار نمي كنه و ارور The resource cannot be found.ميده


ولي حالا مي خوام .aspx رو هم حذف كنم. يعني
index.aspx?post=p1
را به
mysite.com/p1
تبديل كنم كه از دستور Context.RewritePath استفاده كردم. در كامپيوتر خودم كامل اجرا ميشه
ولي وقتي تو سايت upload مي كنم كار نمي كنه و ارور The resource cannot be found.ميده


لطفا راهنمايي فرماييد

hobab-theme
چهارشنبه 12 بهمن 1390, 17:39 عصر
دوست عزیز احتمالا هاست شما بر روی سرور 2003 قرار داره که از آدرس های بدون پسوند پشتیبانی نمی کنند.
البته بعضی از شرکتها بروز هستن و این مشکل روی سرورهاشون رفع شده

aspismylove
پنج شنبه 20 بهمن 1390, 12:32 عصر
در صورتی که هاست شما دات نت 4 رو پشتیبانی کنه خیر هیچ مشکلی پیش نمیاد

طبق مثالهای ذکر شده باید در فایل Global.ascx این رو اضاف کنید :
routes.MapPageRoute("", "pages/index", "~/Default.aspx")

موفق باشید

دوست عزیز هاست من از دات نت 4 پشتیبانی میکنه و همه کارهای رو که گفتید و انجام دادم ولی باز هم اررور میده توی لوکال هاست درست کار میکنه .
اینه اررورش :

Server Error


404 - File or directory not found.

The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.





ممنون میشم راهنمایی کنید :قلب:

aspismylove
پنج شنبه 20 بهمن 1390, 20:44 عصر
ببخشید کسی نیست راهنمایی کنه ؟ :متفکر:

توی لوکال هاست درسته ولی آپلود که میکنم اررور بالا رو میده .......

hobab-theme
شنبه 22 بهمن 1390, 10:46 صبح
از صفحات بدون پسوند استفاده نکنید. یک پسوند دلخواه(مثلاً html) به صفحات بدید . تست کنید و نتیجه رو اعلام کنید
مثلاً :
routes.MapPageRoute("", "pages/index.html", "~/Default.aspx")

alialirezaee1
چهارشنبه 26 بهمن 1390, 19:50 عصر
سلام،

من در Global.asax از RewritePath("default.aspx")a استفاده كردم.
وقتي سايت رو لود مي كنم تو كدم يه img دارم



<img src="LogoSites/header1.png" />


img لود نميشه
آدرس دهي رو اينجوري هم دادم
RewritePath("~/default.aspx")a
باز هم فرقي نكرد لود نميشه و اين خطا رو ميده:
/LogoSites/default.aspx not found

در ضمن اين كد در localhost كاملا درست است و فقط در host خطا ميده

uthman
یک شنبه 26 خرداد 1392, 17:42 عصر
دو آدرس زیر را در نظر بگیرید

http://code.com/article.aspx?id=4&type=print

http://code.com/article-4-print.html

تنها کافیست مقداری تغییر در Web.Config دهید

<urlMappings enabled="true">
<add url="~/show-5.htm"
mappedUrl="~/show.aspx?id=5" />
</urlMappings>

دقت فرمایید تنظیمات فوق متعلق به شاخه <system.web> می باشد و باید در این بخش از Web.Config تعریف شود. در مثال بالا url آدرسی است که کاربر مشاهده می کند و mappedUrl آدرس حقیقی ماست
ابتدا فایل ضمیمه مقاله را دریافت کنید و Intelligencia.UrlRewriter.dll را به پوشه Bin پروژه خود انتقال دهید. حال مراحل زیر را جهت بازخوانی یک آدرس ثابت دنبال کنید :

فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم. همانطور که از نام این رویداد پیداست زمانی کد اجرا می شود که درخواستی به سمت موتور Asp.net ارسال شود.

if (Request.Url.ToString().Contains("show.htm"))
{
Context.RewritePath("show.aspx");
}


در این مثال محتوای صفحه ای با نام show.htm که بصورت مجازی ایجاد شده است و وجود خارجی ندارد از صفحه ای دیگر با نام show.aspx خوانده می شود.
سپس فایل web.config را باز و محتوای آن را به صورت زیر تنظیم نمایید :

<configSections>
<section name="rewriter" type="Intelligencia.UrlRewriter.Configuration. RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
</configSections>

<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>

<rewriter>
<rewrite url="show.htm" to="show.aspx"/>
</rewriter>


لطفا" به محل قرار گرفتن تغییرات دقت ویژه ای داشته باشید :


<configSections> : داخل تگ <configuration> قرار گیرد.
<httpModules> : داخل تگ <system.web> قرار گیرد.
<rewriter> : داخل تگ <configuration> و خارج و بعد از تگ<system.web> قرار گیرد.


توجه فرمایید کد کامل برنامه را نیز می توانید در انتهای برنامه دانلود نمایید.


مخفی کردن Query String :
شاید به ذهن شما رسیده باشد که چگونه می توان آدرس های مجازی دارای Query String را نیز بازنویسی کنیم. این کار نیز بسیار ساده است و تفاوتهای جزئی با مثال بالا دارد.
برای اینکار دوباره فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم :

if (Request.Url.ToString().Contains("show-(.+).htm"))
{
Context.RewritePath("show.aspx?id=$1");
}

علامت (.+) نماینده یک متغیر است که مقدار Query String را می گیرد و $1 در خط بعدی همان مقدار (.+) و نماینده مقدار Query String در آدرس حقیقی است. همچنین تگ rewrite را بصورت زیر تغییر دهید :


<rewrite url="show-(.+).htm" to="show.aspx?id=$1"/>





در صورتی که آدرس شما دارای بیش از یک پارامتر Query String است (برای مثال سه پارامتر) بصورت زیر عمل کنید :


show-(.+)-(.+)-(.+).htm






Show.aspx?Page=$1&amp;Id=$2&amp;state=$3



دقت کنید که در بازخوانی آدرسهای با چندین پارامتر Query String در قسمت آدرس حقیقی قبل از & ، amp; را قرار دهید. در ضمن برای بازخوانی مقدار Query String نیاز به کد نویسی خاصی نیست و با در نظر گرفتن مثال فوق بعد از UrlRewriting با دستور زیر در صفحه show.aspx می توانیم مقدار Query String را بخوانیم :



Response.Write((string)Request.QueryString["id"]);


کسی می دونه چه جوری باید لینک زیر رو تبدیل کرد
www.asp.rayanravesh-co.com
می خواهم لینک زیر رو به
www.rayanravesh-co.com
تبدیل کنم.ممنون میشم اگه کمک کنید

saraeftekhari
شنبه 26 دی 1394, 09:36 صبح
شبیه سازی لینک کاریه که برای کوتاه کردن متن لینک برای بارگداری توی جاهایی مثله تلگرام یا جاهایی هستش که نمیخان که لینک اصلی دیده بشه
این کار لینک رو ریدایرکت میکنه و نیازش سرعت بهتر هستش
سایت تت برک و سایت شادیاب که دوتا سایت رقیت در زمینه خرید گروهی هستن که لینک هاشونو برای کلیک شدن منتشر میکنند توی جتهتیی مثل تلگرام اما تت برگ (http://www.hhh.com) لینک هاشو شبیه سازی میکنه و سایت خرید گروهی شادیاب (http://www.shadyab.com) این کار نمیکنه تا از نظر سئو هم برای خوب باشه
اما این کار خوبی هایی هم داره که گفتم