نمايش پيغام براي صفحه‌اي كه وجود

delavar

Member
با سلام
در بعضي از سايت‌ها وقتي صفحه‌اي را مي‌خواهيم كه وجود ندارد پيغام مي‌دهد كه چنين صفحه‌اي وجود ندارد. آيا اين از امكانات خود سايت است يا با برنامه‌نويسي مثلاasp مي‌توان اين كار را كرد؟


با تشكر
دلاور
 

saman_sweden

Active Member
Re: نمايش پيغام براي صفحه‌اي كه وج

delavar گفت:
با سلام
در بعضي از سايت‌ها وقتي صفحه‌اي را مي‌خواهيم كه وجود ندارد پيغام مي‌دهد كه چنين صفحه‌اي وجود ندارد. آيا اين از امكانات خود سايت است يا با برنامه‌نويسي مثلاasp مي‌توان اين كار را كرد؟
هم امكان خود سايت ميتونه باشه و هم برنامه نويسي كه بنام Error: 404 است


با تشكر
دلاور
 

delavar

Member
Re: نمايش پيغام براي صفحه‌اي كه وج

saman_sweden گفت:
با سلام

هم امكان خود سايت ميتونه باشه و هم برنامه نويسي كه بنام Error: 404 است
[/quote]

سلام :wink:
با تشكر از راهنمايي شما
لطفاْ كاملتر جواب بدهيد كه بنده به جواب برسم.
چطور مي‌توانم با asp يا asp.net آن را ايجاد كرد؟

با تشكر
دلاور
 

BM

New Member
از htaccess مي توانيد استفاده كنيد و ربطي به ASP/PHP/PERL ... نداره.

روش بسيار ساده تر اين است كه براي هر error يك فايل بسازيد با اسم:‌error.shtml

بطور مثال l.404.shtml

(از اول اسم .l را برداريد در اين اديتور نمي توانستم بهتر تايپ كنم)


اگر هم در ويندوز هستيد در IIS ميتوانيد custom error پيج ها را براحتي تغيير بديد.

در shtml ميتوانيد از تگ هاي زير براي نشان دادن محتويات error استفاده كنيد:
<!--#echo var="REMOTE_ADDR" -->

<!--#echo var="REQUEST_URI" -->
<!--#echo var="HTTP_HOST" -->
<!--#echo var="HTTP_REFERER" -->
....


( اين اديتور RTL هست و كمي جابجا كرده تگ ها رو، دفت اگر كنيد مشخص هست كه چطوري هستند)
 

delavar

Member
سلام :wink:
با تشكر از راهنمايي شما
بنده فايلي با نام e_404.shtml ساخت البته بدون (_e) و آن را در روت قرار دادم اما هيچ تغييري نكرد :!: و همان پيغام خود ويندوز نشان داده شد.
در ضمن اين تگ هايي كه فرموديد هم داخل body قرار دادم و باز هم هيچ اتفاقي نيافتاد.
راستي اين تگ ها چه هستند و چه كارهايي مي‌توان با آن كرد؟

با تشكر از راهنمايي كامل شما
دلاور :arrow:
 

hoom

Active Member
سلام

فكر كنم اين عكس همه چيز رو توضيح بده :

asp0084c.gif


ارادتمند
 

kavian

Member
سلام دوست عزيز
براي ساختن Custom Error Page معمولا از فايل htaccess. استفاده مىكنند.
براي انجام اين كار :
1- ابتدا يك صفحه HTML بسازيد تا اگر صفحه مورد نظري روي Server وجود نداشت كاربر به اين صفحه Redirect بشه. اين صفحه رو با نام Notfound.html ذخيره كنيد.
2- Notepad رو باز كنيد و خط زير رو تايپ كنيد
کد:
ErrorDocument 404 /Notfound.html
و اين فايل رو با نام htaccess. ذخيره كنيد.
موضوع مهم نام اين فايل هست كه بايد htaccess. باشه و در واقع اين يك فايل با نام htaccess نيست بلكه يك file extension ( پسوند فايل ) است.
3- هر 2 فايل رو روي دايركتوري ريشه سايتتون Upload كنيد.
اما دقت كنيد فايل htaccess. بايد بصورت ASCII آپلود بشه نه BINARY و CHMOD اون رو به 644 تنظيم كنيد. اين كار باعث ميشه كه Server توانايي خوندن فايل رو داشته باشه اما براي Browser قابل خوندن نباشه.
از اين به بعد اگر كاربر صفحه اي رو كه روي Server وجود نداره جستجو كنه ‌Browser ‌‌‌‌‌‌صفحه Notfound.html رو نمايش ميده.

اما با ASP هم ميشه اين كار رو بصورت نه چندان اصولي انجام داد. كد زير كمكتون ميكنه.
اگه متوجه نشديد چطور از اين كد استفاده كنيد بعدا در موردش توضيح ميدم:
کد:
<%
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")

	If NOT FSO.FileExists(Server.MapPath(*.*)) then
			Response.Redirect("Notfound.html")
	End If
	
   Set FSO = Nothing
%>
 

delavar

Member
سلام :wink:
از تمامي دوستاني كه منت سر بنده نهاده و راهنمايي كردند تشكر مي‌كنم بخصوص جناب آقاي كاويان كه توضيح كامل اراپه كردند.

جناب آقاي كاويان بنده يك فايل بدون نام و با پسوند htaccess ساختم و محتواي آن را همانطور كه فرموديد ErrorDocument 404 /Notfound.html قرار دادم و فايل Notfound.html را هم ساختم و هر دوي آن را در روت قرار دادم. ولي اتفاقي نيافتاد :!:

البته با آن كد asp هم بسيار سر و كله زدم و تنها چيزي كه به ذهنم رسيد اين بود كه آن را در فايل global.asa قرار دهم كه آن هم ايراد مي‌گرفت.

راستي ويندوز بنده ايكس‌پي هست.

با تشكر

دلاور
 

kavian

Member
سلام Delavar عزيز
اگر روشي كه گفتم به همون صورت عمل كرده باشي و فايل htaccess. رو بصورت BINARY آپلود و CHMOD رو به 644 تنظيم كرده باشي بايد جواب بده. چون خودم تست كردم.

البته ممكنه كه Servere شما اين امكان رو نداشته باشه و يا اين اجازه رو به شما نده كه به فايل htaccess. دسترسي پيدا كنيد. اما عموما Serverهاي تحت Unix و Linux و هر نسخه اي از Apache web server اين فايل رو پشتيباني مىكنند.

روش عمومي براي ساختن Custom Error Page همين هست.
 

delavar

Member
سلام :(

ظاهرا سرور ما اين رو ساپورت نمي‌كنه :cry:
ولي اگر بشه با اون چند خط asp كار را راه انداخت بسيار عالي مي‌شود.
چطور مي‌توانم از آن استفاده كنم. اگر امكان دارد توضيحي در مورد نحوه استفاده آن را بفرماييد.

با تشكر از شما
دلاور
 

delavar

Member
delavar گفت:
سلام :(

ظاهرا سرور ما اين رو ساپورت نمي‌كنه :cry:
ولي اگر بشه با اون چند خط asp كار را راه انداخت بسيار عالي مي‌شود.
چطور مي‌توانم از آن استفاده كنم. اگر امكان دارد توضيحي در مورد نحوه استفاده آن را بفرماييد.
راستي همش از اين *.* ايراد مي‌گيره! داخل " " هم گذاشتم ولي فرقي نكرد!
If NOT FSO.FileExists(Server.MapPath(*.*)) then

با تشكر از شما
دلاور
 

kavian

Member
سلام Delavar عزيز
همونطور كه گفتم روش اصولي استفاده از htaccess هست.
و اما استفاده از ASP براي ساختن Custom Error Page :

اول كد رو مىنويسم:

کد:
<%
    Set FSO = Server.CreateObject("Scripting.FileSystemObject")

    Entry = Request.Querystring("targetlocation")

    If Entry = "" Then
       Response.Redirect("Home.asp")
    Else
       If NOT FSO.FileExists((Server.MapPath(Entry))) then
	  Response.Redirect("404page.html")
       Else
	  Response.Redirect(Entry)
       End If
    End If

    Set FSO = Nothing
%>

شما ابتدا بايد يك صفحه با نام Default.asp و يا index.asp بسازيد و اون رو در دايركتوري ريشه سايتتون قرار بديد و تمام لينك هاي صفحاتتون رو همراه با آدرس كامل پارامتر targetlocation به به اين صفحه ارسال كنيد. مثلا فرض كنيد مىخوايد به صفحه Contact.asp لينك كنيد. براي اين كار بايد آدرس لينك رو بصورت زير وارد كنيد:
کد:
http://www.YourDomain.com/default.asp?targetlocation=contact.asp
وقتي كاربر براي ورود به سايت شما آدرس www.YourDomain.com رو تايپ مىكنه صفحه ASP بالا اجرا ميشه و چون مقدار پارامتر targetlocation تهي است؛ كد بالا كاربر رو به صفحه Home.asp كه صفحه اول سايت شماست Redirect ميكنه.
حالا فرض كنيد مىخوايد به صفحه Contact.asp بريد. اگر targetlocation برابر Contact.asp باشه كاربر به اين صفحه Redirect ميشه ولي اگر مقدار ديگه اي مثل abcd.html داشته باشه؛ چون اين صفحه وجود نداره كاربر به صفحه 404page.html فرستاده ميشه.

البته بصورت هاي ديگه اي هم ميتونيد از اين كد استفاده كنيد. مثلاً در يك Frameset و يا اينكه اون رو در تمام صفحات ASP قرار بديد.

اميدوارم سخت توضيح نداده باشم.
اگه بازم سوالي بود در خدمتم.
 

delavar

Member
سلم :wink:

آقا كاويان خيلي ممنون

عجب راهي جالبي نشان دادي٬ واقعاْ توپ بود.

دلاور
 

جدیدترین ارسال ها

بالا