تا حالا شده زمانی که از یک دایرکتوری خالی وبسایت یا صفحه خاصی که خطای مجوز داره بازدید میکنید، با خطای 403 مواجه بشین؟ بیشتر وبسایتها به نحوی طراحی و برنامهنویسی میشن که امکان جستجوی دایرکتوری رو به خاطر جلوگیری از دسترسی مهاجمین به فایلهای حساس نمیدن. بااینحال، اگه شما یا بازدیدکنندههای شما با این خطا در وبسایت خودتون مواجه بشین، باید این مسئله رو رفع کنید تا ترافیک ارزشمند وبسایت از بین نره. حالا میخوایم تو این مقاله، روشهای مختلف رفع این خطا رو با هم مرور کنیم. پس این مقاله رو تا انتها مطالعه کنید.
آموزش برنامه نویسی با کندو شما رو تمامی خطاها و کدها آشنا میکنه.
خطای 403 چیه؟
خطای 403 یا عدم امکان دسترسی شما به این منبع، یک کد وضعیت تحت HTML هست و زمانی رخ میده که سرور درخواستی رو شناسایی کرده اما امکان دسترسی اضافی رو نمیده. دلایل مختلفی باعث بروز این خطا میشن که قصد داریم اونها رو بررسی کنیم.
دلایل بروز خطای 403
خطاهای ممنوعیت HTTP 403 غالباً ناشی از پیکربندی غلط دسترسی در سمت کلاینت هست، یعنی معمولاً شما خودتون میتونین این مسئله رو رفع کنید. علت رایج بروز این نوع خطاها، تنظیمات مجوز پوشه یا فایل هست که میتونه دسترسی خواندن، نوشتن و اجرای فایل یا پوشه رو کنترل کنه. در این حالت، دو احتمال وجود داره: یا اینکه مالک وبسایت تنظیمات رو به نحوی ویرایش کرده که شما نمیتونین به وبسایت دسترسی داشته باشین و یا اینکه مجوزهای مناسبی رو تعیین نکرده.
دلیل دیگه بروز این خطا، تنظیمات نامناسب یا معیوب در فایل .htaccess هست. ممکنه این اتفاق بعد از انجام تغییرات فایل رخ بده. خوشبختانه میشه، این مسئله رو با ایجاد فایل جدید پیکربندی سرور، بهسادگی حل کرد.
بهجز این دو دلیل، بعضی دیگه از مسائلی که ممکنه باعث بروز این خطا بشن، عبارتاند از:
عدم وجود صفحه ایندکس
ممکنه صفحه خانه وبسایت، index.html یا index.php نباشه.
پلاگین معیوب وردپرس
اگر یک پلاگین وردپرس بهدرستی پیکربندی نشده باشه یا با پلاگین دیگه سازگار نباشه، ممکنه باعث بروز خطای 403 بشه.
آدرس IP غلط
ممکنه نام دامنه، یک آدرس IP غلط یا قدیمی باشه که دسترسی شما رو به یک وبسایت مسدود کنه.
نفوذ بدافزار
نفوذ بدافزار میتونه باعث معیوب شدن و خرابی فایل .htaccessبشه. شما باید قبل از بازیابی فایل، بدافزار رو از بین ببرین.
لینک جدید صفحه وب
ممکنه مالک سایت، لینک صفحه رو بهروزرسانی کرده باشه و این لینک با نسخه کش شده، متفاوت باشه.
نحوه رفع خطای 403
از اونجایی که خطای HTTP 403 بیشتر ناشی از مجوزهای دسترسی فایل هست، باید بیشتر به دنبال روشهایی بود که این مسئله رو رفع کنه. اما، روشهای دیگهای هم برای حل این مسئله مثل پاک کردن کش مرورگر یا اسکن کردن بدافزار وجود دارن.
تو این قسمت قراره هشت روش رو برای حل خطای 403 HTTP مطرح کنیم. توجه کنید که هر چند این روشها و مراحل بیشتر معطوف به وردپرس هستن، اما میشه اونها رو در وبسایتهای دیگه هم اعمال کرد.
1- فایل.htaccess. رو بررسی کنید
ممکنه با فایل .htacces. خیلی آشنا نباشین، چون این فایل غالباً بهصورت مخفی در دایرکتوری سایت وجود داره. بااینحال، اگر شما از فایل منیجر هاستینگر استفاده میکنید، این فایل بهصورت پیشفرض، در دایرکتوری public_html شما قرار داره.
برای مکانیابی این فایل، مراحل زیر رو طی کنید:
- File Manager رو در داشبورد hPanel پیدا کنید.
- دایرکتوری public_html رو برای یافتن فایل .htaccess باز کنید.
اگر از cPanel استفاده میکنید، این مراحل رو طی کنید:
- File Manager رو در cPanel پیدا کنید.
- در دایرکتوری public_html، به سراغ فایل .htaccess برین.
- اگر نمیتونین این فایل رو پیدا کنید، بر روی Settings در گوشه بالا سمت راست تصویر کلیک کنید و گزینه Show Hidden Files (dotfiles) رو فعال کنید.
فایل .htaccess یک فایل پیکربندی سرور هست و اساساً با تغییر تنظیمات Apache Web Server کار میکنه. هر چند که این فایل بهصورت پیشفرض در بیشتر سایتها وجود داره، شما باید یک فایل جدید .htaccess رو بهصورت دستی در صورت پاک شدن این فایل یا نداشتن اون روی وبسایت، ایجاد کنید. حالا مراحل زیر رو برای بررسی اینکه پیکربندی اشتباه باعث بروز خطا شده، انجام بدین:
- روی فایل راست کلیک کرده و Download رو برای ایجاد بکاپ، انتخاب کنید.
2. بعد از بکاپ گیری، فایل رو delete کنید.
2. سعی کنید به وبسایت دسترسی پیدا کنید. اگر اینطور شد، درنتیجه فایل معیوب بوده.
3. برای ایجاد یک فایل جدید .htaccess، در داشبورد وردپرس خودتون لاگین بشین و روی SettingsPermalinks کلیک کنید.
4. بدون هیچ تغییری، روی دکمه Save Changes در پایین صفحه کلیک کنید.
حالا تونستین یک فایل جدید .htaccess رو برای وبسایت خودتون بسازین. اگر مشکل تون حل نشد، روش بعدی رو امتحان کنید.
2- مجوزهای دایرکتوری و فایل رو دوباره تنظیم کنید
احتمال دیگه بروز خطای 403، مجوزهای غلط برای فایلها یا فولدرها هست. بهطورکلی، وقتیکه فایلها ایجاد میشن، بعضی از مجوزهای پیشفرض رو دارن که چگونگی خواندن، نوشتن و اجرای اونها رو کنترل میکنن.
شما با استفاده از FTP میتونین، مجوزهای فایل و فولدر رو ویرایش کنید. برای این کار:
- یک کلاینت FTP رو پیکربندی کنید و اون رو به وبسایت خودتون وصل کنید.
- پس از اتصال، روی public_html راست کلیک کنید و File Attributes رو انتخاب کنید.
3. مجوز 755 رو در فیلد Numeric value وارد کنید و Apply to directories only رو انتخاب کنید و روی OK کلیک کنید.
در حال کلی مقادیر عددی مجوز فایل، 755 برای فولدرها، 644 برای محتوای استاتیکی و 700 برای محتوای دینامیکی هست.
4. پس از تغییر مجوزهای فولدر، مرحله 2 و 3 رو تکرار کنید اما در این مرحله، عدد 644 رو در فیلد Numeric value وارد کرده و گزینه Apply to files only رو انتخاب کنید.
درنهایت، به وبسایت مراجعه کنید و ببینین مشکل حل شده یا نه.
3- پلاگینهای وردپرس رو غیرفعال کنید
اگر مراحل قبلی مؤثر واقع نشدن، ممکنه خطای 403 ناشی از پلاگین معیوب یا ناسازگار باشه. در این مرحله، ما تلاش میکنیم پلاگینها رو برای رفع خطای 403، غیرفعال کنیم.
ما توصیه میکنیم که تمام پلاگینها در یک مرحله غیرفعال بشن. به همین دلیل، شما باید بتونین مسئله رو تشخیص بدین و راهحل مناسب رو پیدا کنید. خوب بریم سراغ مراحل این کار:
- به محتوای هاستینگ خودتون بهوسیله FTP دسترسی پیدا کنید یا از فایل منیجر حساب هاستینگ استفاده کنید و به پوشه public_html wp-content برین.
- پوشه plugins رو پیدا کنید.
3. پوشه رو با یک نام دیگه مثل disabled-plugins نامگذاری کنید تا تمامی پلاگین ها غیرفعال بشن.
دوباره به وبسایت برین. اگر مشکل حل شده بود، پس پلاگین باعث بروز این خطا شده بوده. دوباره نام فولدر رو به plugins تغییر بدین تا تمامی پلاگین ها دوباره فعال بشن.
حالا باید تمامی پلاگین ها رو، یکییکی از داشبورد وردپرس خودتون غیرفعال کنید و سایت رو هم بررسی کنید. با این روش، میتونین پلاگین معیوب رو پیدا کنید. بعد از اینکه پلاگین معیوب رو پیدا کردین، میتونین اون رو بهروزرسانی یا حذف کنید.
4. یک صفحه ایندکس آپلود کنید
صفحه خانه وبسایت خودتون رو بررسی کنید. باید بهصورت index.htmlیا index.php باشه. اگر نبود، دو راه وجود داره. سادهترین راه، این هست که نام صفحه خانه رو به index.htmlیا index.php تغییر بدین.
بااینحال، اگر قصد دارین تا اسم صفحه خانه وبسایت رو همچنان حفظ کنید، یک صفحه ایندکس در دایرکتوری public_html خودتون آپلود کنید و یک ریدایرکت به صفحه کنونی، ایجاد کنید. مراحل این کار عبارتاند از:
- یک فایل index.html یا index.php به دایرکتوری public_html خودتون، آپلود کنید. از فایل منیجر هاستینگ یا FTP خودتون استفاده کنید.
- فایل .htaccess رو باز کنید.
- این اسنیپت کد رو برای ریدایرکت کردن فایل index.php یا index.html به صفحه خانه وبسایتتون، وارد کنید. فراموش نکنید که homepage.html رو با نام واقعی صفحه، جایگزین کنید.
5- مالکیت فایل رو ویرایش کنید
مالکیت اشتباه فایل میتونه باعث شکلگیری خطای 403 در صورت استفاده از لینوکس یا هاستینگ وب VPS بشه. عموماً میشه فایلها و فولدرها رو به یک مالک، گروه یا هر دو اختصاص داد. یادتون باشه شما به دسترسی SSH برای اصلاح مالکیت در این محیطها نیاز دارین. همچنین به پایانه SSH برای اتصال به VPS، نیاز دارین.
پس از اتصال SSH به سرور وبسایت خودتون، مالکیت رو با استفاده از دستور SSH زیر، بررسی کنید:
نتیجه شبیه زیر به دست میاد:
به بخش مالک و گروه توجه کنید. مالکیت صحیح، نام کاربری حساب هاستینگ شما هست. اگر مالکیت متفاوتی رو مشاهده میکنید، از دستور chown Linux برای اصلاح مالکیت فایل استفاده کنید. سینتکس پایهای chown عبارت است از:
بهطور مثال، اگر نام کاربری شما هاستینگر هست، از سینتکس زیر استفاده کنید:
6. رکورد A رو راستی آزمایی کنید
ممکنه خطای 403 زمانی رخ بده که نام دامنه شما، آدرس IP اشتباهی رو نشون میده و شما مجوز مشاهده اون محتوا رو ندارین. بنابراین، دوباره نام دامنه مرتبط با اون آدرس IP رو بررسی کنید.
برای بررسی اینکه رکورد A دامنه بهدرستی هدفگیری شده، به DNX Zone Editor در hPanel برین:
- در hPanel لاگین بشین.
- به بخش Advanced برین و روی DNS Zone Editor کلیک کنید.
- میتونین فهرستی از رکوردهای DNS رو مشاهده کنید. رکوردی با لیبل A رو در ستون نوع (type) پیدا کنید.
- آدرس IP رو روی ستون Content بررسی کنید.
- اگر آدرس IP اشتباه بود، روی Edit کلیک کنید و اون رو تغییر بدین. در مرحله بعد، روی Update کلیک کنید.
اگر رکورد صحیحی رو پیدا نکردین، رکورد جدید رو از بخش Manage DNS records ایجاد کنید. مطمئن بشین که A رو بهعنوان Type انتخاب کردین و آدرس IP صحیحی رو در فیلد Point to قرار دادین. سپس روی Add Record کلیک کنید.
اگر بهتازگی هاست وب خودتون رو تغییر دادین و فراموش کردین نام سرور خودتون رو تغییر بدین، دامنه شما همچنان بر مبنای هاست وب قدیمی شما هست.
7. بدافزار رو شناسایی کنید
بدافزار میتونه باعث بروز خطای 403 بشه. اگر سایت وردپرس شما با یک بدافزار آلوده شده باشه، ممکنه کد ناخواسته به فایل .htaccess تزریق بشه. در این حالت، حتی اگر شما فایل رو با استفاده از روش اولی که بیان کردیم اصلاح کنید، خطا همچنان وجود داره.
وبسایت خودتون رو برای شناسایی هر نوع بدافزار احتمالی، اسکن کنید. پلاگینهای امنیتی خیلی زیادی برای وردپرس مثل Sucuri یا Wordfence وجود دارن.
بیشتر پلاگینهای امنیتی وردپرس مثل Wordfence قابلیت حذف بدافزار رو دارن. پس از اینکه پلاگین تمامی فایلهای آلوده رو شناسایی کرد، ما میتونین این فایلها رو حذف یا بازیابی کنید.
روش دیگه، بازیابی وبسایت با استفاده از فایلهای بکاپ هست. همچنین امکان بازیابی وبسایت با استفاده از بکاپ پایگاه داده وجود داره.
8- کش یا سابقه وبسایت رو پاک کنید
کش و کوکیهای وبسایت شما هم میتونن باعث بروز خطای 403 بشن. کش دادهها رو برای بارگذاری سریعتر وبسایت نگهداری میکنه. بااینحال، ممکنه لینک وبسایت بهروز شده باشه و لینک صفحه واقعی وبسایت، با نسخه کش شده متفاوت باشه.
همچنین ممکنه خطا ناشی از کوکیها باشه. این حالت در مورد وبسایت که معمولاً به اون لاگین می شین، رخ میده، اما آخرین لاگین، این پیام خطا رو نشون میده.
پاک کردن کش مرورگر و کوکیها، این مسئله رو حل میکنه. البته یادتون باشه که در نوبت بعدی که از وبسایت بازدید میکنید، باید زمان طولانیتری رو صرف کنید، چون مرورگر دوباره تمامی فایلهای سایت رو نیاز داره. پاک کردن کوکیها هم باعث خروج شما از کلیه وبسایتهای لاگین شده میشه.
برای پاک کردن کش و کوکیها در گوگل کروم، این مراحل رو طی کنید:
- روی آیکون سهنقطهای در گوشه بالا سمت راست کلیک کرده و Settings رو انتخاب کنید.
- بخش Privacy and Security رو پیدا کنین و روی Clear browsing data کلیک کنید.
- از منوی کشویی برای انتخاب بازه زمانی حذف دادهها، استفاده کنید. سپس گزینههای Cookies and other site data و Cached images and files رو علامت بزنید.
- دادهها رو پاک کنید.
سخن پایانی
خطای 403 میتونه باعث ناامیدی شما و کاربران وبسایت شما و درنتیجه کاهش ترافیک وبسایت بشه. این خطا بیشتر به دلیل مجوزهای اشتباه فایل رخ میده. اما دلایل دیگهای مثل عدم وجود فایل ایندکس، پلاگینهای معیوب یا حتی نفوذ بدافزار وجود دارن. ممکنه پیدا کردن علت واقعی خطای 403 دشوار باشه. اما با دنبال کردن روشهایی که ما در این مقاله مطرح کردیم، می تونید این خطا رو از صفحات وبسایت خودتون از بین ببرین.