PDA

View Full Version : آموزش: حذف اکستنژن aspx. از صفحات در url وب سایت



keiv@n
یک شنبه 30 فروردین 1394, 12:49 عصر
برای حذف کردن پسوند از صفحات وب سایت باید قطعه کد زیر رو در فایل وب کانفیگ بنویسیم :


<system.webServer>
<rewrite>
<rules>
<rule name="RewriteASPX">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}.aspx" />
</rule>
</rules>
</rewrite>
</system.webServer>

حالا باید کلا آدرس صفحات رو در سایت به صورت بدون استفاده از پسوند aspx. بدیم :

<a href="/Default">Home</a>


بحث دوم :
آیا وقتی صفحه مرورگر رو ببندیم سشن از بین میره ؟ یا نه ؟
خوب برای پاسخ به این سوال باید دو حالت زیر رو در نظر بگیریم :
الف ) فرض کنیم در مرورگر خودمون صفحات یاهو یا جیمیل و یا کلا صفحات مختلفی باز باشه در این حالت در صورت بستن صفحات مربوط به وبسایتمان session کاربری حذف نخواهد شد !
ب ) اگر حالت اول را در نظر بگیریم و مرورگر را close all Tabs کنیم در این حالت بعد از بسته شدن کامل مرورگر sesssion کاربر حذف خواهد شد ....
پس در هنگام بستن یک عدد tab از مرورگر سشن پاک نشده و هنوز وجود خواهد داشت ...

amir_T_2008
دوشنبه 31 فروردین 1394, 01:25 صبح
لطفا یک سمپل قرار بدید چون من این کد هرجای وب کانفیگ میذارم ارور میده
یا به خط
<system.webServer>

و یا به خط
<rewrite>

ممنون

keiv@n
دوشنبه 31 فروردین 1394, 08:42 صبح
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="testConn" connectionString="Data Source=KEIVAN-PC\SQLEXPRESS;Initial Catalog=test;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<sessionState cookieless="AutoDetect" timeout="1"></sessionState>
<authentication mode="Forms" >
<forms cookieless="AutoDetect" defaultUrl="/Default.aspx" loginUrl="/login.aspx" timeout="20">
</forms>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<system.webServer>
<rewrite>
<rules>
<rule name="RewriteASPX">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}.aspx" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

sadegh.te
دوشنبه 31 فروردین 1394, 13:55 عصر
دوست عزیز شما برای حذف .aspx باید از url routing استفاده کنید.

keiv@n
دوشنبه 31 فروردین 1394, 17:10 عصر
به این خوبی داره کار میکنه مشکلش چیه

sadegh.te
دوشنبه 31 فروردین 1394, 21:42 عصر
خوب Routing را اصولی و بهتریه و نیازی به سشن و... نداره و کلا تو دو سه خط کد تموم میشه.

keiv@n
دوشنبه 31 فروردین 1394, 22:34 عصر
داش صادق من که نگفتم این روش از روتینگ بهتره ، داشتم سرچ میزدم به این مطلب خوردم دیدم چیز خوبیه گفتم بزارم ملت استفاده کنن... !
+ سشن رو واسه آتنتیکشن استفاده کرده بودم
+ دوستمون گفته بود کد ارور داده واسش منم کل کد وب کانفیگو آوردم اونجا و الا تو این روش سشن نیازی نیست استفاده بشه ...
حالا اگر باگی چیزی داره لطفا بگو..... البته خودم چک نکردم ببینم آیا واسه ارسال کوئری استرینگ جواب میده یا نه !

sadegh.te
دوشنبه 31 فروردین 1394, 23:43 عصر
داش صادق من که نگفتم این روش از روتینگ بهتره ، داشتم سرچ میزدم به این مطلب خوردم دیدم چیز خوبیه گفتم بزارم ملت استفاده کنن... !
+ سشن رو واسه آتنتیکشن استفاده کرده بودم
+ دوستمون گفته بود کد ارور داده واسش منم کل کد وب کانفیگو آوردم اونجا و الا تو این روش سشن نیازی نیست استفاده بشه ...
حالا اگر باگی چیزی داره لطفا بگو..... البته خودم چک نکردم ببینم آیا واسه ارسال کوئری استرینگ جواب میده یا نه !

آقا دمت گرم واسه ارسال کوئری استرینگم هیچ مشکلی نداره.

amir_T_2008
سه شنبه 01 اردیبهشت 1394, 02:59 صبح
دوست عزیز من همین آموزش شما انجام میدم اما جواب نمیده البته بگم که رو vs2010 و Framework 4.0 انجام میدم اما متاسفانه جواب نمیده

keiv@n
سه شنبه 01 اردیبهشت 1394, 08:14 صبح
ارور میگیری ازش ؟ یا کار نمیکنه ؟

amir_T_2008
سه شنبه 01 اردیبهشت 1394, 13:05 عصر
وقتی کد تو وب کانفیگ میذارم زیر خط <rewrite> آبی رنگ میشه ولی اجرا میشه کد ، ولی وقتی روی لینک ها کلیک میکنم به صفحه دیگه که میره ارور میده همچین صفحه ای موجود نیست

keiv@n
سه شنبه 01 اردیبهشت 1394, 14:32 عصر
میشه سورستو بدی ببینم ؟ مرسی

amir_T_2008
چهارشنبه 02 اردیبهشت 1394, 01:44 صبح
میشه سورستو بدی ببینم ؟ مرسی

خدمت شما

130536
لطفا اگر مشکلش حل شد دوباره قرار بدید

keiv@n
چهارشنبه 02 اردیبهشت 1394, 09:11 صبح
مشکلی نداره
http://k1ec.ir/Default2

amir_T_2008
چهارشنبه 02 اردیبهشت 1394, 15:42 عصر
ميگم براي من با vs210 كار نمي كنه و ارور ميده

keiv@n
یک شنبه 06 اردیبهشت 1394, 13:42 عصر
با سلام جدد

روشی که توضیح داده بودم واسه سایت مپ مشکل داره :لبخند: کلی گشتم و مشکلشو اینطوری حل کردم :

باید قطعه کد زیر رو به قسمت <Conditions> اضافه کنیم :



<add input="{URL}" negate="true" pattern="\.axd$" />


این کد باعث میشه تا مشکل سایت مپ با این قضیه حل بشه ....

یا بهتره به صورت کلی هم بنویسمش »

<system.webServer>
<rewrite>
<rules>
<rule name="RewriteASPX">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{URL}" negate="true" pattern="\.axd$" />
</conditions>
<action type="Rewrite" url="{R:1}.aspx" />
</rule>
</rules>
</rewrite>
</system.webServer>

atarodi
دوشنبه 07 اردیبهشت 1394, 13:38 عصر
سلام نه این روش برای من هم کار نمی کنه. من از ویژوال استادیو 2010 استفاده می کنم. این روش فایده ای نداره. باید از url routing استفاده بشه که اگر آموزش یا مطلبی در این مورد دارید ممنون میشویم در اختیار ما هم بذارید.
من می خوام از آدرس اصلی سایت صفحه اصلی اون Default.aspx برداشته بشه و آدرس سایت در هر حالتی به صورت یکسان یعنی http://mydomain.com بیاد بالا ولی نتونستم. کمکم کنید.