رفع خطای 403 در /wp-admin/admin-ajax.php برای سایت‌های وردپرسی

آموزش رفع خطای 403 در فایل admin-ajax پوشه‌ی wp-admin و بررسی دلایل مختلف بروز خطا و نحوه‌ی حل آن - حل ارور 403 در wp-admin/admin-ajax.php

در این مقاله دلایل مختلف بروز خطای 403 در /wp-admin/admin-ajax.php و نحوه‌ی حل این ارور به روش‌های مختلف را بطور کامل با هم بررسی می‌کنیم.

مدتی بود که در وبسایت شایان وب با ارور 403 در فایل /wp-admin/admin-ajax.php مواجه بودیم. این فایل هم، تنها فایل در دایرکتوری wp-admin وبسایت‌های وردپرسی است که در فایل robots.txt برای گوگل قابل مشاهده و باز کردن است. برای همین رفع این ارور می‌تواند مهم باشد؛ ضمن اینکه در فرآیندهای مختلفی در فرانت‌اند (جلوی سایت) برای کاربر استفاده می‌شود. در این مقاله، در خصوص تجربیات‌مان برای رفع این مشکل و خطا صحبت کرده‌ایم؛ خواندن این مقاله می‌تواند برای شما مفید باشد.

ما برای رفع این مشکل تمام موارد را بررسی کردیم، بسیار جستجو کردیم و سرچ زدیم و در نهایت به نتیجه رسیدیم. شما با خواندن این مقاله می‌توانید بسیار در زمان خودتان صرفه‌جویی کنید بدلیل اینکه تمام دلایل اصلی که می‌تواند باعث این مشکل شود را در این مقاله با هم بررسی کرده‌ایم.

فایل admin-ajax.php چه کار می‌کند؟!

فایل admin-ajax.php در دایرکتوری wp-admin در وردپرس، شامل همه‌ی کدها برای مسیریابی درخواست‌های ایجکس (Ajax) در وردپرس است. در اصل هدف اصلی این فایل، برقراری ارتباط بین کاربر و سرور با استفاده از ایجکس است. وردپرس از آن برای رفرش محتوای صفحات بدون بارگذاری مجدد آن استفاده می‌کند که آن را برای کاربران پویا (داینامیک) و تعاملی می‌کند.

نکته‌ی مهم: دسترسی به تمام فایل‌ها در دایرکتوری wp-admin از گوگل گرفته شده است؛ بجز این فایل admin-ajax.php. برای اینکه از درستی این مورد مطمئن شوید، تنها کافیست که در آخر آدرس وبسایت خود، عبارت /robots.txt را وارد کنید. در آن‌جا با چنین تصویری مواجه می‌شوید که دسترسی گوگل به کل این دایرکتوری (پوشه) بسته شده ولی به این فایل admin-ajax دسترسی داده شده است:

فایل robots.txt و باز بودن دسترسی گوگل و سایر موتورهای جستجو به فایل admin-ajax.php
فایل robots.txt و باز بودن دسترسی گوگل و سایر موتورهای جستجو به فایل admin-ajax.php

خب، حالا که با این فایل و کاربرد آن آشنا شدیم، برویم و دلایل بروز خطای 403 در فایل /wp-admin/admin-ajax.php را با هم بررسی کنیم:

دلایل خطای 403 در فایل /wp-admin/admin-ajax.php

بروز این ارور در این فایل، می‌تواند دلایل مختلفی داشته باشد. لیستی از دلایل رایج را در لیست زیر برای شما آورده‌ایم و سپس به نحوه‌ی رفع و حل آن‌ها می‌پردازیم. همچنین شما می‌توانید با کلیک روی هر کدام مستقیما به آن بخش مراجعه کنید:

مشکل ما در وبسایت شایان وب، دلیل آخر بود؛ یعنی ماژول امنیتی مود سکیوریتی جلوی این فایل را گرفته بود. برای اینکه شما هم مطمئن بشوید که آیا دلیل ارور، مورد آخر هست یا موارد دیگر (یعنی 5 مورد اول است و دلیل آخر نیست) یک روشی وجود دارد که بتوانید مطمئن شوید! برای دلیل خطای آخر، باید با شرکت هاستینگ (شرکتی که از آن هاست وبسایت خودتان را خریداری کرده‌اید) تماس بگیرید. با ما همراه باشید تا مطمئن شویم که مشکل از کدامیک از موارد بالاست.

آیا نیاز است با هاستینگ وبسایت‌تان تماس بگیرید؟!

برای اینکه مطمئن شوید که آیا دلیل این خطا، مورد آخر یعنی مشکل در ماژول امنیتی سرور و حساس شدن آن است یا خیر، با ما همراه باشید!

برای این کار، روی ساب دامنه‌ی هاست یا روی دایرکتوری (یعنی یک پوشه یا همان فولدر folder) در مسیر public_html ایجاد کنید. یک وردپرس جدید و کاملا جدا نصب کنید. پس از اتمام کامل نصب، هیچ افزونه‌ای نصب نکنید و قالب اصلی را هم روی سایت‌تان فعال بگذارید؛ یعنی یک وردپرس عادی داشته باشید.

سپس در آخر آدرس آن وبسایت، عبارت /wp-admin/admin-ajax.php را وارد کنید. مثلا به صورت زیر:
https://example.com/foldername/wp-admin/admin-ajax.php

اگر در این وردپرس جدا و جدید روی همین هاست هم، ارور 403 وجود داشت پس به احتمال بسیار زیاد، مشکل شما مانند ما، در موردِ آخر است. نحوه‌ی حل مشکل را در ادامه با شما به اشتراک خواهیم گذاشت که می‌توانید از خواندن بقیه‌ی مقاله بگذرید (چون برای نحوه‌ی حل سایر دلایل خطاست) و با کلیک روی دکمه‌ی زیر، مستقیما به بخش نحوه‌ی حل این مورد بروید:

ولی در غیر این صورت (یعنی اگر این آدرس را وارد کردید و با خطا مواجه نشدید) به احتمال بسیار زیاد، مشکل از سایر موارد است که باز هم راه حل را بررسی خواهیم کرد.

دلیل اول: تغییر دسترسی و سطح permission این فایل

دلیل کلی خطای 403، عدم امکان دسترسی به فایل هست. یعنی کاربری که لینک را وارد کرده، دسترسی لازم را برای مشاهده یا ویرایش آن را ندارد.

برای بررسی این موضوع، از طریق file manager هاست‌تان، وارد مسیر public_html/wp-admin/admin-ajax.php شوید و دسترسی فایل را چک کنید:

بررسی وضعیت دسترسی فایل admin-ajax.php برای حل خطای 403 در /wp-admin/admin-ajax.php
بررسی وضعیت دسترسی فایل admin-ajax.php

در بخش permissions باید عدد 644 نوشته شده باشد که در هر دوی سی‌پنل و دایرکت ادمین این بخش وجود دارد و می‌توانید در کنار اطلاعات فایل آن را مشاهده کنید. (مانند تصویر بالا)

در صورتی که دسترسی متفاوت بود، با تغییر سطح دسترسی به 644 می‌تواند حل شود.

دلیل دوم: مشکل از سمت افزونه‌های کش و فشرده‌سازی JS

اگر افزونه‌ی کش مثل wp-rocket، لایت اسپید کش، W3 Total Cache و… که کش را برای جاوا اسکریپت (JS) فعال می‌کنند نصب دارید، موقتا آن‌ها را غیرفعال کنید و باز هم تست کنید. شاید با پاک‌سازی کش هم مشکل شما حل شود و نیازی به تغییر تنظیمات افزونه نباشد؛ ولی اگر مشکل شما حل نشد، باید تنظیمات افزونه را تغییر دهید و یا از افزونه‌ی دیگری استفاده کنید.

غیرفعال کردن فشرده سازی فایل‌های جاوا اسکریپت برای حل مشکل
غیرفعال کردن فشرده سازی فایل‌های جاوا اسکریپت (JS) برای حل مشکل

همچنین در تنظیمات این افزونه‌ها امکان مستثنی کردن یک فایل بخصوص از فشرده‌سازی یا کش هم وجود دارد که می‌توانید این تنظیم را برای /wp-admin/admin-ajax.php انجام دهید تا شاید حل شود.

دلیل سوم: مشکل و عدم سازگاری یک افزونه در وردپرس

بطور کلی ارورها و مشکلات عجیب و غریب در وردپرس، می‌تواند بخاطر عدم سازگاری افزونه‌ها با هم، قالب با افزونه‌ها یا موارد مشابه باشد. شما می‌توانید بطور موقت افزونه‌ها را غیرفعال کنید و بررسی کنید.

برای اینکه بطور موقت غیرفعالسازی را انجام دهید، تنها کافیست از File Manager کنترل‌پنل هاست‌تان، به مسیر wp-content بروید و از آن‌جا نام پوشه‌ی plugins را به مثلا plugin1 تغییر دهید و این عدد 1 را در آخر نام آن اضافه کنید. با این کار پوشه‌ی پلاگین‌ها (افزونه‌ها) لود نمی‌شود و در اصل بطور موقت افزونه‌ها غیرفعال می‌شوند.

تغییر نام پوشه‌ی افزونه‌ها (plugins)
تغییر نام پوشه‌ی افزونه‌ها (plugins)

سپس در مرورگر خود آدرس admin-ajax.php را وارد کنید و بررسی کنید که آیا ارور برطرف شده است یا خیر.

همچنین برای بررسی عدم وجود مشکل در قالب، از پیشخوان وردپرس بخش پوسته‌ها، قالب سایت را به یکی از قالب‌های پیش‌فرض وردپرس مثل 2021 یا 2020 تغییر دهید تا بررسی کنید که مشکل از قالب شما نباشد.

دلیل چهارم: مشکل در فایل .htaccess

یکی دیگر از دلایل وجود مشکلات عجیب و غریب وردپرس، کدی اضافه در فایل .htaccess است. برای بررسی این موضوع، فرآیند زیر را طی کنید:

  1. ابتدا وارد File Manager هاست‌تان شوید و وارد پوشه‌ی public_html (جایی که وردپرس نصب هست) شوید.
  2. در این‌جا اگر فایلی به نام .htaccess را مشاهده نکردید، از تنظیمات فایل منیجر گزینه‌ی نمایش فایل‌های مخفی (hidden files) را فعال کنید.
  3. سپس نام فایل .htaccess را به مثلا .htaccess-old تغییر دهید تا این فایل دیگر به کار گرفته نشود و بطور کلی اصلا خوانده نشود.
  4. سپس برای ایجاد مجدد فایل استاندارد .htaccess در وردپرس، به پیشخوان وردپرس بخش تنظیمات > پیوند یکتا بروید. در این بخش یکبار تنها روی ذخیره کلیک کنید و پس از ذخیره، باید مشاهده کنید که دوباره این فایل ایجاد شده. (فایل old را پاک نکنید، باید توسط یک متخصص کدهای آن بررسی شود و مواردی که نیاز هست به فایل جدید منتقل شود. ضمن اینکه توجه داشته باشید که ریدایرکت‌ها هم معمولا در این فایل ذخیره می‌شوند پس با حذف آن ریدایرکت‌ها از بین خواهند رفت)
  5. سپس آدرس فایل admin-ajax.php را وارد کنید و بررسی کنید که حل شده یا خیر.
تغییر نام فایل htaccess
تغییر نام فایل .htaccess

دلیل پنجم: مشکل در کدهای هسته‌ی وردپرس

گاهی ممکن است کدهای هسته‌ی وردپرس دچار مشکل شده باشد، مثلا فایلی ویرایش یا حذف شده باشد یا حتی بروزرسانی وردپرس کامل انجام نشده باشد که باعث مشکل می‌شود. برای حل مشکل، ابتدا از روش آسان استفاده کنید و اگر حل نشد، راه دیگر را استفاده کنید.

از پیشخوان وردپرس‌تان وارد بخش “بروزرسانی‌ها” شوید و در آن‌جا روی دکمه‌ی “نصب دوباره‌ی نگارش x” کلیک کنید. (حتی اگر وردپرس‌تان آخرین نسخه هم هست، این کار را انجام دهید)

بروزرسانی دوباره‌ی وردپرس
بروزرسانی دوباره‌ی وردپرس

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

  1. آخرین نسخه‌ی وردپرس را از وبسایت WordPress.org دانلود کنید.
  2. فایل زیپی که دانلود کردید را از حالت فشرده خارج کنید (Extract کنید).
  3. سپس فولدر wp-content و فایل wp-config.php (اگر این فایل وجود داشت) را از میان فایل‌ها انتخاب و حذف کنید. (حتما باید فولدر wp-content را حذف کنید وگرنه به مشکل می‌خورید) – نکته: فایل wp-config-sample.php را نیازی نیست حذف کنید؛ اما آن دو مورد را حذف کنید.
  4. سپس مجددا تمام فایل‌ها را انتخاب کنید و به حالت فشرده (Zip) تبدیل کنید. (نباید در این فایل زیپ فولدر wp-content و فایل wp-config.php وجود داشته باشد)
  5. از وبسایت وردپرسی خودتان یک بکاپ پشتیبان تهیه کنید تا در صورت مشکل، براحتی برگردید. (برای این مورد می‌توانید با شرکت هاستینگ خودتان هم در ارتباط باشید)
  6. در مرحله‌ی بعدی، تمام فایل‌های وردپرس سایت‌تان بجز wp-content و wp-config.php را حذف کنید. (توجه کنید!! این دو مورد را که اولی فولدر و دومی فایل هست را اصلا حذف نکنید!!! و توجه داشته باشید که این فایل wp-config.php را با wp-config-sample.php اشتباه نگیرید.)
  7. سپس فایل زیپی که آماده کردید را آپلود کنید و همانجا اکسترکت کنید. باید دوباره سایر فولدرها و فایل‌ها مثل فولدر wp-admin و… در کنار فایل wp-config.php و فولدر wp-content قرار گرفته باشد.
  8. حالا سایت‌تان را باز کنید و ببینید که باز می‌شود یا خیر. در غیر این صورت باید بخشی را اشتباه انجام داده باشید پس بکاپ را بازگردانی کنید تا تغییرات‌تان از بین برود.
  9. و بعد که دیدید سایت درست کار می‌کند (که اگر درست باز شد یعنی تمام مراحل بالا را درست انجام داده‌اید و نباید مشکلی باشد) فایل /wp-admin/admin-ajax.php را بررسی کنید که آیا ارور 403 آن برطرف شده یا خیر.

دلیل ششم و آخر: مشکل در ماژول امنیتی سرور (مثل ModSecurity) یا آنتی ویروس سرور

این دلیل، دلیل رایج مشکل است و اگر پس از بررسی که در ابتدای مقاله داشتیم، به این نتیجه رسیدید که از این مورد هست، موارد این بخش را مطالعه کنید.

پس از اینکه وردپرس دیگری نصب کردید و مشاهده کردید که این مشکل در آن وردپرس هم وجود دارد، پس نتیجه می‌گیرید که به احتمال زیاد مشکل از سمت سرور هست. برای حل مشکل شما به عنوان کسی که هاست را صرفا خریداری کرده است نمی‌توانید کاری انجام دهید و باید با شرکت هاستینگ خود در ارتباط باشید.

به آن شرکت یک تیکت پشتیبانی ارسال کنید و بگویید که دقیقا این مشکل را دارید و بگویید که احتمال می‌دهید مشکل از ماژول امنیتی سرور (مثل ModSecurity) یا آنتی ویروس سرور است که ارور 403 در فایل /wp-admin/admin-ajax.php وجود دارد.

اگر همچنان پس از بررسی متخصصین به هیچ نتیجه‌ای نرسیدید و مطمئن شدید که قطعا مشکل از این مورد نیست، دلایل قبلی مشکل که کاملا در این مقاله بررسی شد را تست کنید تا به راه‌حل برسید.

نتیجه‌گیری

در این مقاله با هم دلایل مشکل خطای 403 در /wp-admin/admin-ajax.php را بررسی کردیم و انواع دلایل مختلف این مشکل و نحوه‌ی حل هر کدام را کاملا یاد گرفتیم و اجرا کردیم. این ارور می‌تواند باعث مشکلاتی در وبسایت شود و حل کردن آن مهم است. اگر مقاله برایتان مفید بود و توانستید ارور را حل کنید یا اگر به مشکلی بر خوردید، حتما در بخش نظرات برای ما ارسال کنید.

یاد بگیرید کسب و کار اینترنتی خودتان را راه اندازی کنید!!

نظرات

برای مطلع شدن از ارسال پاسخ جدید روی این دیدگاه شما، در سایت شایان وب ثبت‌نام کنید یا وارد شوید تا از طریق ایمیل و پیامک به شما اطلاع‌رسانی کنیم!