خطا های سمت سرور و کلاینت هر از گاهی اتفاق می افتند که معمولا به آنها پاسخ HTTP یا کد وضعیت گفته می شود. پیغام خطای 406 Not Acceptable یا "406 ERROR" نیز، یک کد وضعیت HTTP محسوب می شود. این خطا بعضا در زمان بازدید از یک سایت رخ می دهد و برای کاربر اتفاق ناخوشایندی می باشد. زمانی که وب سایت شما با این خطا مواجه می شود نیاز است سریعا نسبت به رفع آن اقدام نمایید زیرا سبب کاهش بازدیدکنندگان خواهد شد.
آنچه در این مقاله به صورت مختصر خواهید خواند:
- خطای 406 Not Acceptable چیست؟
- دلیل ایجاد خطای 406 Not Acceptable چیست؟
- روش رفع خطای 406 Not Acceptable به چه صورت است؟
- راهکار جلوگیری از بروز خطای 406 Not Acceptable چیست؟
خطای 406 Not Acceptable چیست؟
پیغام خطای 406 Not Acceptable، بر خلاف سایر خطاها از جمله خطای 404 یا خطای Internal Server Error 500 چندان رایج نیست. اگر چه این خطا نادر است اما بعضا سبب عدم دسترسی شما به سایت می شود.
تصویر(1)
متن این پیغام خطا به صورت زیر است:
Not Acceptable
An appropriate representation of the requested resource could not be found on this server.
به صورت کلی نحوه نمایش و متن پیغام خطای 406 Not Acceptable، به سایت، مرورگر و سرویس هاست شما بستگی دارد.
حالتی را فرض کنید که مرورگر به جای نمایش کدهای وضعیت HTTP codes) HTTP) به زبان محاوره ای ساده متن خطا را بیان کند در این صورت مرورگر متنی مانند نمونه زیر را نمایش خواهد داد:
" سلام، من یک مرورگر هستم، تلاش کردم این صفحه از وب سایت را به شما نشان دهم، اما یکی از دو مشکل زیر رخ داده است:
1. سرور وب سایت مورد نظر، فایل با فرمت اشتباهی را در پاسخ به درخواست من ارسال کرده است، بنابراین نمی توانم آن را بپذیرم.
2. سرور وب سایت مورد نظر، برخی تنظیمات مورد نیاز برای نمایش سایت و موارد امنیتی را نقض کرده است."
به عبارتی، اگر مشکلی در فرمت فایل ارسالی از جانب سرور باشد و توسط مرورگر پذیرش نشود، خطای 406 Not Acceptable را مشاهده خواهید نمود. در ادامه به بررسی دلیل ایجاد این خطا پرداخته می شود.
دلیل ایجاد خطای 406 Not Acceptable چیست؟
هر بار که صفحه ای را باز می کنید، مرورگر شما درخواستی به سرور سایت مدنظر می فرستد تا محتوا و فایل های دیتابیس را دریافت کند. مرورگر به عنوان یک پیام رسان میان شما و سرور عمل می کند، به این صورت که به سرور اطلاع می دهد کاربر به چه اطلاعاتی نیاز دارد سپس پاسخ دریافتی را به کاربر می رساند.
در طول اولین درخواست که به آن Accept-header گفته می شود، مرورگر کلیه فرمت های فایلی که پشتیبانی می کند را به سرور اطلاع می دهد. گاهی اوقات سرور پاسخی را ارسال می کند که در فرمت مناسبی نیست یا قوانینی که توسط مرورگر وضع شده را نقض کرده است. در چنین شرایطی خطای 406 نمایان می شود که نشان می دهد پاسخ سرور در چارچوب قابل قبولی نیست.
روش رفع خطای 406 Not Acceptable به چه صورت است؟
در قدم اول توصیه می شود قبل از اعمال تغییرات برای رفع خطای 406 Not Acceptable از سرویس هاست خود نسخه پشتیبان تهیه کنید.
در این بخش به بررسی راهکار هایی برای رفع خطا در سمت کاربر (زمانی که مشکل از سمت کاربر باشد به عنوان مثال سیستم عامل او به درستی کار نکند)، سمت سرور یا دلایلی همانند وجود یک افزونه مخرب پرداخته می شود.
1. مطمئن شوید که URL صحیح است
چک کردن URL ها ممکن است راهکار ساده ای به نظر برسد اما به شما کمک می کند تا متوجه شوید که دلیل ایجاد خطای 406 Not Acceptable از جانب کاربر است یا سرور.
اگر URL درج شده برای مشاهده یک سایت اشتباه باشد احتمال اینکه خطای 404 رخ دهد بیشتر خواهد بود اما، شرایطی را در نظر بگیرید که کاربر آدرس اینترنتی خود را در مرورگر به طور صحیح وارد کرده و سرور پاسخی برخلاف فرمت های مورد قبول ارسال می کند، بدین ترتیب خطای 406 Not Acceptable در سایت مشاهده خواهید کرد.
بنابراین، اولین راهکار برای رفع خطا، چک کردن URL مورد استفاده می باشد. به عنوان مثال، بعضا ممکن است که در انتهای آدرس اینترنتی عبارت JSON یا PHP درج شده باشد، این مورد موجب می شود که سرور درخواست شما را برای آن فرمت های خاص در نظر بگیرد و در آن قالب به شما پاسخ دهد، در حالیکه کاربر چنین چیزی را درخواست نکرده و نیاز ندارد. برای رفع مشکل، URL مورد استفاده را مورد بررسی قرار دهید تا اشتباه تایپی در آن وجود نداشته باشد.
2. دستگاه و شبکه اینترنت خود را ریست کنید
مشکل دیگری که گاها امکان دارد رخ دهد این است که درخواست ارسالی کاربر شامل هدر هایی خاص باشد و پلتفرم سرور مورد نظر کاربر، نتواند پاسخی به آن را ارائه دهد. بخش عمده ای از این پلتفرم ها را سیستم های گیمینگ یا رسانه محور، همانند Hulu یا Spotify تشکیل می دهند.
به عبارت ساده تر، فرض کنید وارد سایت hulu شده اید و تصمیم دارید برنامه تلویزیونی مورد علاقه خود را تماشا کنید اما با پیغام خطای 406 Not Acceptable مواجه می شوید. در این مثال تقریبا همیشه مشکل از سمت کاربر (سیستم عامل، اینترنت و ..) می باشد. خطای 406 Not Acceptable در هر پلتفرمی می تواند رخ دهد، در این بخش چند نمونه از آنها عنوان شده است:
- Hulu
- Google Play
- Square Enix Games
- Netflix
- Xbox
- Windows (usually for gaming)
لیست مطرح شده کامل نیست، اما برای اینکه متوجه شوید این خطا بیشتر در چه پلتفرم هایی مشاهده می شود به شما کمک خواهد کرد.
برای رفع خطای 406 Not Acceptable توصیه های زیر را در نظر بگیرید:
- وضعیت سرور خود را چک کنید، ممکن است مشکل از سمت سرور باشد.
- رایانه، سیستم بازی، دستگاه پخش یا سایر دستگاه های خود را مجدد راه اندازی (Restart) کنید.
- کابل برق همه دستگاه ها را جدا نموده و چند دقیقه صبر کنید، سپس مجدد همه آنها را وصل نمایید.
- از یک دستگاه دیگر با همان اینترنت قبلی، سایت را مورد بررسی قرار دهید. اگر خطای 406 Not Acceptable رفع نشد، یعنی مشکل از اینترنت شما است.
در آخر اگر با انجام تمام راهکار های مطرح شده نتوانستید مشکل را رفع کنید. به منظور عیب یابی، نام پلتفرم مورد نظر به همراه عبارت 406 error code را در مرورگر خود وارد نمایید تا بتوانید از راهنمایی های موجود در اینترنت استفاده کنید.
3. وضعیت سیستم مدیریت محتوای خود را بررسی کنید
تصویر(2)
ممکن است سیستم مدیریت محتوا شما سبب بروز مشکل در فایل های سایت شده باشد. در این شرایط برای رفع خطای 406 Not Acceptable نیاز به بررسی آخرین بروز رسانی صورت گرفته است. در سیستم مدیریت محتوایی مانند وردپرس تنظیمات از پیش تعریف شده ای برای جلوگیری از بروز خطا وجود دارد.
بعضا ممکن است افزونه ها و قالب های وب سایت شما سبب بروز مشکل شوند، در این شرایط با ارتقا cms خود به آخرین نسخه سریعا خطا رفع خواهد شد.
همچنین، برای اینکه متوجه شوید آیا خطای 406 Not Acceptable از سمت سیستم مدیریت محتوا شما بوده یا خیر، نیاز است هرگونه ارتقا نسخه ای که اخیرا انجام شده را به حالت اولیه بازگردانید.
وردپرس به طور منظم بروزرسانی هایی را برای سیستم خود در نظر میگیرد. اکثر این بروزرسانی ها به صورت خودکار در حال انجام هستند بنابراین، نیاز است نسخه فعلی را به حالت قبل از بروزرسانی برگردانید تا دلیل بروز خطا مشخص شود.
4. به طور موقت افزونه ها و قالب خود را غیرفعال کنید
با نصب و فعال سازی افزونه ها و قالب وردپرس، کدهای جدیدی به فایل های وب سایت شما افزوده می شوند که با فایل های اصلی وردپرس در تعامل خواهند بود.
معمولا نصب افزونه های معتبر مشکلی ایجاد نخواهد کرد اما بعضا ممکن است یک افزونه یا قالب مخرب سبب بروز پیغام خطای 406 Not Acceptable در سایت شما شود.
برای بررسی، می توانید افزونه های فعال در وردپرس را غیر فعال نمایید. در صورتی که به پنل مدیریت دسترسی دارید، طبق تصویر زیر از طریق پیشخوان وردپرس، به بخش "افزونه ها" سپس "افزونه های نصب شده" مراجعه نمایید.
می توانید مطابق تصویر تمامی افزونه ها را انتخاب کنید و در نهایت وضعیت آن ها را روی "غیر فعال کردن" قرار داده و روی گزینه "اجرا" کلیک نمایید.
همچنین در صورتی که به پنل مدیریت سایت دسترسی ندارید می توانید از آموزش زیر استفاده کنید:
تصویر(3)
اگر خطا رفع شد می بایست در مرحله بعد همه افزونه ها را فعال و سپس بصورت تک تک غیرفعال کنید تا افزونه ای که باعث اختلال شده است شناسایی شود و همزمان وضعیت سایت را نیز مورد بررسی قرار دهید.
اگر بعد از بررسی افزونه های وب سایت، مشکل رفع نشد ممکن است خطا از سمت قالب شما باشد در این شرایط برای رفع مشکل می توانید قالب نصب شده را غیر فعال نمایید.
غیر فعال سازی قالب به صورت دستی از طریق File Manager
به منظور غیر فعال سازی دستی قالب وردپرس در هاست، مطابق با تصویر ذیل، ابتدا وارد هاست سی پنل خود شوید، سپس روی گزینه "File Manager" کلیک نمایید. در نظر داشته باشید که این مورد برای هاست های دایرکت ادمین نیز صادق بوده و لازم است تا از بخش های متناظر اقدام نمایید.
تصویر(4)
سپس مطابق با تصویر زیر وارد پوشه قالب شوید.
مسیر پوشه قالب ها :
public_html/wp-content/themes
تصویر(5)
بعد از آن نام پوشه قالب فعال خود را تغییر دهید تا غیر فعال سازی صورت گیرد. بعد از انجام این کار، وضعیت وب سایت خود را مورد بررسی قرار دهید.
نکته: پیشنهاد می شود ابتدا از افزونه های خود شروع کرده سپس قالب را بررسی کنید زیرا غیر فعال سازی قالب تاثیر قابل توجهی بر محتوای سایت شما دارد.
5. وضعیت پایگاه داده خود را بررسی کنید
بعد از حذف افزونه مخرب و رفع خطای 406 Not Acceptable، در قدم بعدی نیاز است وضعیت پایگاه داده خود را بررسی کنید زیرا افزونه ها برای عملکرد بهتر به دیتابیس متصل می شوند و ممکن است تغییراتی توسط افزونه حذف شده به وجود آمده باشد. در صورت عدم بررسی دیتابیس، در آینده با مشکلات بیشتری در سایت خود مواجه خواهید شد.
حتی اگر بعد از چک کردن افزونه ها متوجه شدید که اختلالی ندارند، توصیه می شود وضعیت پایگاه خود را بررسی کنید زیرا بعضا اختلال در دیتابیس می تواند سبب نمایش خطای 406 Not Acceptable شود.
به منظور اسکن و تعمیر پایگاه داده خود، راهکار های زیر را انجام دهید:
- اطلاعات وب سایت شما، در دیتابیس ذخیره می شود که شامل پست ها، تنظیمات افزونه ها، قالب ها و .. است. اگر دیتابیس با اطلاعات اضافی پر شود عملکرد آن مختل خواهد شد. برای جلوگیری از این اختلال نیاز است دیتابیس را بهینه سازی کنید. دو افزونه کاربردی در این زمینه WP Optimize و Advanced Database Cleaner میباشند.
- دیتابیس خود را اسکن نموده و به دنبال رکوردها و جداولی باشید که ممکن است توسط افزونه مخرب تغییر یافته باشند یا در مکان نامناسب قرار گرفته و غیر ضروری تلقی می شوند.
- اگر می دانید که چه مشکلی در دیتابیس شما رخ داده است می توانید در موتور های جستجو و انجمن های آنلاین به دنبال راه حل آن باشید. به احتمال زیاد اشخاص دیگری نیز این مشکل را تجربه کرده اند.
6. لاگ سمت سرور را تجزیه و تحلیل کنید
تا به اینجا، مطالب ذکر شده برای عیب یابی مشکلات ایجاد شده از سمت کاربر و cms سایت بود اما اکنون نیاز است به بررسی مشکلات سمت سرور پرداخته شود.
حالتی را در نظر بگیرید که از سیستم مدیریت محتوایی استفاده نمی کنید یا مطمئن هستید که خطایی از سمت CMS یا دستگاه کاربر وجود ندارد. در این شرایط باید لاگ سمت سرور را بررسی نمایید. مهم نیست از چه نوع اپلیکیشن تحت وب، CMS یا سیستم طراحی وبی استفاده می کنید، همه آنها لاگ (گزارشی در خصوص وضعیت سرور) دارند.
نحوه فعال سازی نمایش خطا
وردپرس با زبان برنامه نویسی php ساخته شده است. شما می توانید با فعال کردن نمایش خطا، مشکلات موجود را بررسی و رفع نمایید. برای فعال کردن نمایش خطا از طریق سرویس هاست خود نیاز است قطعه کد زیر را در فایل "htaccess." قرار دهید:
تصویر(6)
راهکار جلوگیری از بروز خطای 406 Not Acceptable چیست؟
ممکن است در موقعیت های مختلف پیغام خطای 406 Not Acceptable را مشاهده کنید. به عنوان مثال، این خطا می تواند وقتی در حال استفاده از پلتفرم های معروفی مانند Hulu یا Netflix (پخش آنلاین فیلم و سریال) رخ دهد.
این اتفاق خوشایندی نیست اما هیچ چیزی وجود ندارد که با کمی عیب یابی نتوان آن را برطرف کرد.
زمانی خطای 406 بیشتر نگران کننده می شود که روی وب سایت یا اپلیکیشن شما اتفاق بیفتد. در این موارد نیاز است که شما سرور و فایل های CMS خود را بررسی نمایید. اگر مشکل از سایت شما بود توصیه می شود روش هایی را برای جلوگیری از بروز مجدد خطا انجام دهید که در ادامه به بررسی آن پرداخته می شود:
- از افزونه ها و قالب های معتبر استفاده کنید.
- هرگز فایل اصلی وردپرس را تغییر ندهید.
- از بهینه سازهای پایگاه داده همانند WP Optimize و Advanced Database Cleaner استفاده کنید تا جداول غیر ضروری را پاک کنند.
- به صورت مرتب از وب سایت خود نسخه پشتیبان تهیه کنید تا در صورت بروز خطا بتوانید بکاپ تهیه شده را بازگردانی نمایید.
جمع بندی:
با انجام راهکار های مطرح شده در این مقاله قادر خواهید بود خطای 406 Not Acceptable را رفع کنید. این خطا رایج نیست اما اگر پیکربندی سایت شما مشکل داشته باشد، ممکن است این خطا را مشاهده نمایید.