سفارشی سازی صفحات خطا در سی پنل
معرفی کدهای خطا رایج HTTP و نحوه سفارشی سازی صفحات خطا در سی پنل
قطعاً برای شما هم پیشآمده که با باز کردن یک وبسایت با خطایی در صفحه مرورگر خود مواجه شوید. سعی داریم به برخی از رایج ترین پیغام ها و معانی آن ها بپردازیم تا بدانیم با مشاهده ی هر یک چه باید انجام دهیم.
نکاتی که هر مرورگر نشان می دهد و کلمات صفحه پیغام خطای آنها با یکدیگر متفاوت است، اما انواع مختلف صفحه های ایراد و خطا تقریبا در همه مرورگرها معنا و مفهوم یکسانی را می رسانند.
بررسی خطای سمت کاربر و سرور :
خطاهای سمت کاربر یا کدهای وضعیت از 400 تا 499، نتیجه ی درخواست های HTTP هستند که توسط نرم افزارهای HTTP سمت کاربر (مانند مرورگر وب) ارسال می شوند. گرچه این دست از خطاها به صورت معمول مربوط به طرف کاربر می باشند ولی آگاهی از اینکه کاربر با چه کد خطای مواجه شده است نیز به جهت امکان سنجی رفع آن از طریق ایجاد تغییرات در تنظیمات سرور، مفید واقع خواهد شد.
خطای های سمت سرور یا کدهای وضعیت 500 تا 599 نیز زمانی نمایش داده می شوند که مشکلی در تنظیمات وب سرور وجود داشته و یا وب سرور توانایی انجام درخواست مربوطه را ندارد.
راهکارهای کلی رفع مشکلات مربوطه :
زمانیکه از مرورگر به جهت امتحان وب سرور استفاده می کنید، به خاطر داشته باشید که حتما بعداز ایجاد هرگونه تغییر در سرور به جهت مشاهده نتیجه، مرورگر خود را رفرش نمایید.
بخش لاگ موجود در سرور خود را برای بدست آوردن اطلاعات بیشتر در رابطه با نحوه مواجه شدن سرور با درخواست های مربوطه بررسی نمایید. به طور مثال وب سرورهایی مانند Apache و Nginx لاگ فایل های مرتبط را در دو فایل به نام های log و error.log ایجاد می نمایند لذا با بررسی کامل این دو فایل اطلاعات جامع و مناسبی کسب خواهد شد.
به خاطر داشته باشید که تعاریف کدهای وضعیت HTTP بخشی از استانداردی هستند که توسط نرم افزارهای مرتبط سمت سرور پیاده سازی شده اند. بنابراین کدهای وضعیتی که به نمایش در می آیند به چگونگی برخورد (مواجهه) نرم افزار مرتبط در سمت سرور با خطای مربوطه بستگی خواهد داشت.
در این مقاله قصد داریم به معرفی یکی از امکانات سی پنل به نام Error Pages بپردازیم. با استفاده از این قابلیت میتوانیم صفحات خطای سفارشی و مورد نظر خود را ایجاد نماییم. اما پیش از آن برای روشنتر شدن مطلب، انواع خطاهای رایج و دلایل وقوع آنها را بررسی میکنیم.
خطاهای رایج HTTP و دلایل وقوع آن
1- 400: خطای 400 یا 400 Bad Request Error به معنای این است که نرمافزاری که از آن استفاده میکنید (برای مثال مرورگرتان)، از طریقی نامتعارف سعی بر دسترسی به وبسایت و سرور وب دارد و یا درخواستی که به سمت سرور ارسال کرده است به هر دلیلی در میان راه خراب شده است؛
برای مثال:
– کوکی ذخیره شده در مرورگر کاربر متعلق به سایت مورد نظر خراب شده است. با پاک کردن کش و کوکی مرورگر مشکل حل میشود.
– به دلیل وجود مشکل در مرورگر، درخواستها به صورت ناقص ارسال میشود.
– به دلیل اشتباه در کدنویسی، به هنگام دسترسی به سرور مقصد با این مواجه میشوید. برای مثال استفاده از کدهای cURL به صورت نادرست
2- 401: خطای 401 یا 401 Unauthorized Error زمانی رخ میدهد که بازدیدکنندهای تلاش به دسترسی به صفحهای دارد که به طور کلی دسترسی به آن صفحه با محدودیتهایی از پیش تعیین شده توسط مدیر وبسایت مواجه بوده و یا خود آن بازدیدکننده به دلیلی اجازهی دسترسی به صفحه را ندارد؛ این مورد میتواند به دلیل تلاشهای ناموفق بازدیدکننده در هنگام وارد کردن Username و Password جهت ورود رخ داده باشد.
3- 403: خطای 403 یا 403 Forbidden Error به معنای این است که کاربر به درستی درخواستی معتبر و صحیح را به سمت سرور ارسال کرده است اما سرور از پاسخگویی به آن درخواست سر باز میزند که ناشی از نبود مجوز به انجام درخواست مورد نظر است.
به عنوان توضیح بیشتر، برخی از دلایل وقوع این خطا را در ادامه شرح میدهیم:
مورد اول: سطح دسترسی نادرست
خطای 403 معمولا زمانی اتفاق میافتد که که وبسرور Permission و یا همان سطح دسترسی لازم جهت خواندن محتوای فایلها را ندارد و از آنجا که امکان خواندن اطلاعات را ندارد، آنها را نمیتواند در اختیار کاربر قرار دهید و با خطای 403 مواجه میشوید. برای مثال:
– کاربر از طریق فایل Index وبسایت مثل example.com/index.html به صورت غیر مجاز قصد دسترسی مستقیم به سرور وب دارد که به دلیل مسائل امنیتی امکان انجام این امر را ندارد.
– سطح دسترسی فایل Index یا پوشهی روت وبسایت به درستی تنظیم نشده باشد.
– فایلهای اصلی وب سایت و فایل Index را در مسیری نادرست قرار داده شده باشد و در سرور مسیر صحیح برای فراخوانی آن تعریف نشده باشد (مثلا در فایل کانفیگ Virtual Host مسیر دهی درست صورت نگرفته باشد)
مورد دوم: عدم وجود صفحهی Index
نام فایل Index وبسایت شما (صفحهی اصلی وبسایتتان)، مواردی به جز Index.html یا Index.php و موارد معمول دیگر است. برای مثال نام فایل اشتباهاً home.html تعریف شده باشد.
مورد سوم: .htaccess
عامل احتمالی دیگر برای وقوع خطای 403، وجود فایل .htaccess در اکانت است. چنانچه درون محتوای این فایل کدهایی باشد که تعدادی خاص و یا تمامی IPها را از ورود به برخی صفحات وبسایت منع کرده باشد، IP های مورد نظر در بازدید از آن صفحات با خطای 403 مواجه میشوند.
مورد چهارم: اعمال محدودیت از سمت هاست
گاهاً اتفاق میافتد وبسایتها به دلیل بازدیدهای بالا، منابع زیادی از سرور را مصرف میکنند. مصرف بیش از حد از منابع RAM یا CPU یا حتی MySQL، ممکن است موجب ایجاد کندی در سرعت دسترسی به وب سایت برای کاربرهای موجود در سرورهای میزبانی وب اشتراکی شود. متاسفانه برخی از شرکتها بدون اطلاع قبلی و ارائه فرصت و راهحل مناسب، وبسایت کاربران را بسته و موجب ایجاد محدودیت در دسترسی آنها به وبسایت میشوند. یکی از خطاهایی که بازدیدکنندگان پس از اعمال محدودیت (با کاهش سطح دسترسی دایرکتوری) با آن مواجه میشوند، همان خطای 403 است.
4- 404: خطای 404 یا 404 Not Found Error از معروفترین خطاهای رایج است که ممکن است در هر وبسایتی رخ دهد. خطای 404 زمانی روی میدهد که بازدیدکننده قصد مشاهدهی صفحه یا محتوایی از وبسایت را داشته باشد که آن صفحه یا محتوا در سرور وجود نداشته باشد. این خطا معمولا به دلایل زیر روی میدهد:
– فایل یا صفحه مورد نظر از سرور حذف شده باشد.
– آدرس دسترسی به فایل یا صفحه به آدرسی جدید تغییر یافته باشد.
– بازدیدکننده آدرسی (URL) به صورت نادرست در مرورگر وارد کرده باشد.
– تنظیمات مربوط به پوشهای که اطلاعات وبسایت از طریق آن خوانده میشود در سرور اشتباه اعمال شده باشد.
– به دلیل عدم وجود تنظیمات صحیح در سرور، وبسرور امکان و اجازهی دسترسی به فایلها و دایرکتوریها را نداشته باشد.
– بسیاری از عملکردهای وبسایت توسط کدهای فایل .htaccess مدیریت میشود و کدهای لازم از این فایل حذف شده باشند.
– اطلاعات وبسایت در سرور از طریق یک لینک Symbolic قابل دسترسی باشد. در این صورت باید مطمئن شویم آن سرور قابل خواندن و اجرای لینکهای Symbolic است.
5- 500: خطای 500 یا 500 Internal Server Error به معنای آن است که سرور به دلیلی نامعلوم امکان پردازش و انجام درخواستی که به سمتش میآید را ندارد. اما وقوع این مورد جای نگرانی ندارد؛ چرا که پیدا کردن منشأ اصلی وقوع خطای 500 برای کارشناسان تگراهاست بسیار ساده است.
از عمدهترین دلایل وقوع خطای 500 میتوان به وجود کدهای غیر صحیح در فایل .htaccess، وجود فایل php.ini به خصوص حاوی محتوای نادرست و همچنین سطح دسترسی نادرست فایلها و دایرکتوریها اشاره کرد.
6- 502: خطای 502 یا 502 Bad Gateway به این معناست که سرور مورد نظر ما به عنوان یک Gateway یا سرورِ پروکسی عمل میکند و درخواست کاربر را جهت اجرا به سرورهای دیگر نیز ارسال کرده است اما پاسخ معتبری از سوی آن سرورها جهت دریافت دیتا و یا در نهایت به انجام رساندن درخواست کاربر دریافت نمیکند. حال جهت رفع این مشکل لازم است سرورهای دیگر را بررسی نمود. همچنین تنظیمات سرور فعلی و یا حتی سلامت و بدون نقص بودن ارتباط شبکهای آن با سرورهای دیگر را بررسی کرد و مطمئن شد تا فایروالی مابین آنها ارتباط را قطع نمیکند.
7- 503: خطای 503 یا 503 Service Unavailable زمانی رخ میدهد که سرور Overload شده باشد و یا برای مدتی اندک در حال تعمیرات خاصی باشد. این خطا چنین معنای ضمنی را میدهد که سرویس مورد نظر شما اعم از سرویس میزبانی وب و یا … به زودی در دسترس قرار میگیرد.
در صورتی که سرور در حال تعمیرات نباشد، این خطا نشاندهندهی این است که سرور منابع CPU یا Memory کافی جهت مدیریت درخواستهای دریافتی را ندارد و در نتیجه یا نیاز به منابع بیشتر است و یا میبایست تنظیم وبسرور به نحوی انجام شود که امکان مدیریت تعداد درخواست، پروسه و بازدیدهای بیشتری را داشته باشد.
8- 504: خطای 504 یا 504 Gateway Timeout به این معناست که سرور مورد نظر ما به عنوان یک Gateway یا سرورِ پروکسی عمل میکند و درخواست کاربر را جهت اجرا به سرورهای دیگر (Backend Servers) ارسال کرده است اما به صورت کلی پاسخی از سوی آن سرورها طی بازهی مشخصی دریافت نکرده است.
فرق این خطا با خطای 502 این است که در این خطا از سمت سرورهای دیگر پاسخی دریافت نمیشود اما در خطای 502 پاسخ به صورت ناقص و یا نامعتبر دریافت میشود.
خطای 504 معمولا به دلیل ارتباط ضعیف شبکه بین سرورها، کندی در به انجام رساندن درخواستها توسط Backend Servers و یا اتمام زمانی از پیش تعیین شده در سرور رخ میدهد. بسیاری از مواقع با Refresh سادهی مرورگر و یا ریست سرویسها و سرور و تجهیزات شبکه مشکل رفع میشود. همچنین گاهاً تنظیمات پروکسی سرور نادرست در مرورگر یا اپلیکیشنها موجب بروز این خطا میشود. تغییر DNS Server های کامپیوتر، سرور یا دامنه نیز میتواند مشکل را در بسیاری از مواقع رفع کند. در صورتی که موارد فوق مشکل بوجود آمده را رفع نکرد، محتویات فایل .htaccess را بررسی کنید، با ISP تماس حاصل فرمایید و یا دیتابیس وب سایت یا اپلیکیشن خود را Repair کنید. موارد بسیاری دیگری نیز جهت انجام بررسی مهم هستند که در صورت کارساز نبودن موارد فوق، متخصصین فنی ما حاضر به انجام بررسی و رفع مشکل هستند.
آموزش ایجاد صفحات خطای سفارشی ( Error Pages )
همانطور که می دانیم زمانیکه بازدیدکنندگان به وب سایت شما مراجعه میکنند ، در صورتیکه در هر یک از بخش های وب سایت مشکلی جهت نمایش وجود داشته باشد ، وب سرور به صورت خودکار ، صفحات خطای پایه را نمایش خواهد داد که نشان دهنده مشکلی در وب سایت شما میباشد. هر کدام از مشکلات دارای کد خاص وضعیت خود هستند . با استفاده از امکان Error Pages در سی پنل قادر خواهید بود تا برای هر کد وضعیت http ، صفحه خطای سفارشی ایجاد نمایید.
برای انجام این کار ابتدا وارد کنترل پنل سی پنل هاست خود شده و سپس از بخش ADVANCED ، گزینه Error Pages را انتخاب میکنیم.
صفحه ای به صورت زیر باز می شود:
1- در صورتیکه در اکانت خود دامنه پارک ، ادان دامنه و یا اب دامین دارید ، در یک لیست کشویی نمایش داده خواهد شد که شما باید دامنه مدنظر خود را جهت سفارشی سازی نمایش خطای صفحات آن انتخاب نمایید.
2- پس از انتخاب دامنه مورد نظر در فیلد Managing ، در تب Edit Common Error Codes ، لیستی از ارورهای مختلف را مشاهده می کنید و میتوانید بر روی وضعیت کد خطا که می خواهید صفحه خطای آن را ویرایش نمایید کلیک کنید. در صورت عدم مشاهده کد وضعیت خطای مد نظر خود ،
3- با انتخاب تب Show All HTTP Error Status Codes ، میتوانید تمامی کدهای وضعیت خطا را مشاهده نموده و سپس انتخاب نمایید.
پس از وارد شدن به صفحه کد مورد نظر ، اطلاعاتی که قصد دارید برای بازدیدکنندگان وب سایت نمایش داده شود را درون ادیتور وارد نمایید.کد html موردنظر خود را نیز در این قسمت وارد نمایید.
در نهایت بر روی گزینه Save کلیک میکنیم.
مشاهده میکنیم که صفحه خطای مورد نظر با اطلاعات مورد نظر ما با موفقیت ایجاد شده است.