رفع خطای 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 دسترسی داده شده است:
خب، حالا که با این فایل و کاربرد آن آشنا شدیم، برویم و دلایل بروز خطای 403 در فایل /wp-admin/admin-ajax.php را با هم بررسی کنیم:
دلایل خطای 403 در فایل /wp-admin/admin-ajax.php
بروز این ارور در این فایل، میتواند دلایل مختلفی داشته باشد. لیستی از دلایل رایج را در لیست زیر برای شما آوردهایم و سپس به نحوهی رفع و حل آنها میپردازیم. همچنین شما میتوانید با کلیک روی هر کدام مستقیما به آن بخش مراجعه کنید:
- تغییر دسترسی و سطح permission این فایل
- مشکل از سمت افزونههای کش مانند WP rocket و…
- مشکل و عدم سازگاری یک افزونه در وردپرس
- مشکل در فایل .htaccess
- مشکل در کدهای هستهی وردپرس
- مشکل در ماژول امنیتی سرور (مثل ModSecurity) یا آنتی ویروس سرور
مشکل ما در وبسایت شایان وب، دلیل آخر بود؛ یعنی ماژول امنیتی مود سکیوریتی جلوی این فایل را گرفته بود. برای اینکه شما هم مطمئن بشوید که آیا دلیل ارور، مورد آخر هست یا موارد دیگر (یعنی 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 شوید و دسترسی فایل را چک کنید:
در بخش permissions باید عدد 644 نوشته شده باشد که در هر دوی سیپنل و دایرکت ادمین این بخش وجود دارد و میتوانید در کنار اطلاعات فایل آن را مشاهده کنید. (مانند تصویر بالا)
در صورتی که دسترسی متفاوت بود، با تغییر سطح دسترسی به 644 میتواند حل شود.
دلیل دوم: مشکل از سمت افزونههای کش و فشردهسازی JS
اگر افزونهی کش مثل wp-rocket، لایت اسپید کش، W3 Total Cache و… که کش را برای جاوا اسکریپت (JS) فعال میکنند نصب دارید، موقتا آنها را غیرفعال کنید و باز هم تست کنید. شاید با پاکسازی کش هم مشکل شما حل شود و نیازی به تغییر تنظیمات افزونه نباشد؛ ولی اگر مشکل شما حل نشد، باید تنظیمات افزونه را تغییر دهید و یا از افزونهی دیگری استفاده کنید.
همچنین در تنظیمات این افزونهها امکان مستثنی کردن یک فایل بخصوص از فشردهسازی یا کش هم وجود دارد که میتوانید این تنظیم را برای /wp-admin/admin-ajax.php انجام دهید تا شاید حل شود.
دلیل سوم: مشکل و عدم سازگاری یک افزونه در وردپرس
بطور کلی ارورها و مشکلات عجیب و غریب در وردپرس، میتواند بخاطر عدم سازگاری افزونهها با هم، قالب با افزونهها یا موارد مشابه باشد. شما میتوانید بطور موقت افزونهها را غیرفعال کنید و بررسی کنید.
برای اینکه بطور موقت غیرفعالسازی را انجام دهید، تنها کافیست از File Manager کنترلپنل هاستتان، به مسیر wp-content بروید و از آنجا نام پوشهی plugins را به مثلا plugin1 تغییر دهید و این عدد 1 را در آخر نام آن اضافه کنید. با این کار پوشهی پلاگینها (افزونهها) لود نمیشود و در اصل بطور موقت افزونهها غیرفعال میشوند.
سپس در مرورگر خود آدرس admin-ajax.php را وارد کنید و بررسی کنید که آیا ارور برطرف شده است یا خیر.
همچنین برای بررسی عدم وجود مشکل در قالب، از پیشخوان وردپرس بخش پوستهها، قالب سایت را به یکی از قالبهای پیشفرض وردپرس مثل 2021 یا 2020 تغییر دهید تا بررسی کنید که مشکل از قالب شما نباشد.
دلیل چهارم: مشکل در فایل .htaccess
یکی دیگر از دلایل وجود مشکلات عجیب و غریب وردپرس، کدی اضافه در فایل .htaccess است. برای بررسی این موضوع، فرآیند زیر را طی کنید:
- ابتدا وارد File Manager هاستتان شوید و وارد پوشهی public_html (جایی که وردپرس نصب هست) شوید.
- در اینجا اگر فایلی به نام .htaccess را مشاهده نکردید، از تنظیمات فایل منیجر گزینهی نمایش فایلهای مخفی (hidden files) را فعال کنید.
- سپس نام فایل .htaccess را به مثلا .htaccess-old تغییر دهید تا این فایل دیگر به کار گرفته نشود و بطور کلی اصلا خوانده نشود.
- سپس برای ایجاد مجدد فایل استاندارد .htaccess در وردپرس، به پیشخوان وردپرس بخش تنظیمات > پیوند یکتا بروید. در این بخش یکبار تنها روی ذخیره کلیک کنید و پس از ذخیره، باید مشاهده کنید که دوباره این فایل ایجاد شده. (فایل old را پاک نکنید، باید توسط یک متخصص کدهای آن بررسی شود و مواردی که نیاز هست به فایل جدید منتقل شود. ضمن اینکه توجه داشته باشید که ریدایرکتها هم معمولا در این فایل ذخیره میشوند پس با حذف آن ریدایرکتها از بین خواهند رفت)
- سپس آدرس فایل admin-ajax.php را وارد کنید و بررسی کنید که حل شده یا خیر.
دلیل پنجم: مشکل در کدهای هستهی وردپرس
گاهی ممکن است کدهای هستهی وردپرس دچار مشکل شده باشد، مثلا فایلی ویرایش یا حذف شده باشد یا حتی بروزرسانی وردپرس کامل انجام نشده باشد که باعث مشکل میشود. برای حل مشکل، ابتدا از روش آسان استفاده کنید و اگر حل نشد، راه دیگر را استفاده کنید.
از پیشخوان وردپرستان وارد بخش “بروزرسانیها” شوید و در آنجا روی دکمهی “نصب دوبارهی نگارش x” کلیک کنید. (حتی اگر وردپرستان آخرین نسخه هم هست، این کار را انجام دهید)
و سپس بررسی کنید که آیا حل شده یا خیر. در صورتی که حل نشد، از روش زیر استفاده کنید:
- آخرین نسخهی وردپرس را از وبسایت WordPress.org دانلود کنید.
- فایل زیپی که دانلود کردید را از حالت فشرده خارج کنید (Extract کنید).
- سپس فولدر wp-content و فایل wp-config.php (اگر این فایل وجود داشت) را از میان فایلها انتخاب و حذف کنید. (حتما باید فولدر wp-content را حذف کنید وگرنه به مشکل میخورید) – نکته: فایل wp-config-sample.php را نیازی نیست حذف کنید؛ اما آن دو مورد را حذف کنید.
- سپس مجددا تمام فایلها را انتخاب کنید و به حالت فشرده (Zip) تبدیل کنید. (نباید در این فایل زیپ فولدر wp-content و فایل wp-config.php وجود داشته باشد)
- از وبسایت وردپرسی خودتان یک بکاپ پشتیبان تهیه کنید تا در صورت مشکل، براحتی برگردید. (برای این مورد میتوانید با شرکت هاستینگ خودتان هم در ارتباط باشید)
- در مرحلهی بعدی، تمام فایلهای وردپرس سایتتان بجز wp-content و wp-config.php را حذف کنید. (توجه کنید!! این دو مورد را که اولی فولدر و دومی فایل هست را اصلا حذف نکنید!!! و توجه داشته باشید که این فایل wp-config.php را با wp-config-sample.php اشتباه نگیرید.)
- سپس فایل زیپی که آماده کردید را آپلود کنید و همانجا اکسترکت کنید. باید دوباره سایر فولدرها و فایلها مثل فولدر wp-admin و… در کنار فایل wp-config.php و فولدر wp-content قرار گرفته باشد.
- حالا سایتتان را باز کنید و ببینید که باز میشود یا خیر. در غیر این صورت باید بخشی را اشتباه انجام داده باشید پس بکاپ را بازگردانی کنید تا تغییراتتان از بین برود.
- و بعد که دیدید سایت درست کار میکند (که اگر درست باز شد یعنی تمام مراحل بالا را درست انجام دادهاید و نباید مشکلی باشد) فایل /wp-admin/admin-ajax.php را بررسی کنید که آیا ارور 403 آن برطرف شده یا خیر.
دلیل ششم و آخر: مشکل در ماژول امنیتی سرور (مثل ModSecurity) یا آنتی ویروس سرور
این دلیل، دلیل رایج مشکل است و اگر پس از بررسی که در ابتدای مقاله داشتیم، به این نتیجه رسیدید که از این مورد هست، موارد این بخش را مطالعه کنید.
پس از اینکه وردپرس دیگری نصب کردید و مشاهده کردید که این مشکل در آن وردپرس هم وجود دارد، پس نتیجه میگیرید که به احتمال زیاد مشکل از سمت سرور هست. برای حل مشکل شما به عنوان کسی که هاست را صرفا خریداری کرده است نمیتوانید کاری انجام دهید و باید با شرکت هاستینگ خود در ارتباط باشید.
به آن شرکت یک تیکت پشتیبانی ارسال کنید و بگویید که دقیقا این مشکل را دارید و بگویید که احتمال میدهید مشکل از ماژول امنیتی سرور (مثل ModSecurity) یا آنتی ویروس سرور است که ارور 403 در فایل /wp-admin/admin-ajax.php وجود دارد.
اگر همچنان پس از بررسی متخصصین به هیچ نتیجهای نرسیدید و مطمئن شدید که قطعا مشکل از این مورد نیست، دلایل قبلی مشکل که کاملا در این مقاله بررسی شد را تست کنید تا به راهحل برسید.
نتیجهگیری
در این مقاله با هم دلایل مشکل خطای 403 در /wp-admin/admin-ajax.php را بررسی کردیم و انواع دلایل مختلف این مشکل و نحوهی حل هر کدام را کاملا یاد گرفتیم و اجرا کردیم. این ارور میتواند باعث مشکلاتی در وبسایت شود و حل کردن آن مهم است. اگر مقاله برایتان مفید بود و توانستید ارور را حل کنید یا اگر به مشکلی بر خوردید، حتما در بخش نظرات برای ما ارسال کنید.
مطالب آموزشی مفید دیگر
دورههای آموزشی حرفهای طراحی سایت
دورهی آموزشی وب مدرس
راهاندازی کسبوکار آنلاین آموزشی
با شرکت در دورهی آموزشی جامع و ویژهی وب مدرس، تمام اصول یک کسب و کار فروش دورههای آموزشی را خواهید آموخت و در نهایت فروش اتوماتیک محصولات خود را تجربه خواهید کرد.
چالش 3 روزهی راهاندازی وبسایت
قدم به قدم، عملی و کاملا رایگان
اگر همیشه میخواستید وبسایت خودتان را راهاندازی کنید ولی به هر دلیلی فرصت نشده، همین الان در این چالش شرکت کنید تا بتوانید در 3 روز وبسایتتان را راهاندازی کنید!
آموزش انتخاب نام دامنهی وبسایت
نکات مهم آن به همراه چک لیست
در این محصول آموزشی بطور قدم به قدم و کامل با نکات، اصول و ابزارهای انتخاب یک نام دامنهی مناسب برای وبسایت آشنا میشوید. (همراه با چک لیست مکمل)
دورهی آموزشی طراحی سایت کاربردی
آموزش کامل طراحی وبسایت
در این دورهی آموزشی، طراحی وبسایت را بصورت کامل و کاربردی از ابتدا و بصورت عملی در 10 هفته یاد میگیرید. آموزشها به صورت گام به گام و با پشتیبانی مناسب هستند.
دورهی آموزشی راستچینسازی
و فارسیسازی قالب وردپرس
در این دورهی آموزشی، فارسی سازی قالب و افزونه وردپرس را یاد میگیریم. در دوره آموزش فارسی سازی قالب و افزونه وردپرس، نکات بسیار کاربردی و متفاوتی آموزش داده میشود.
دورهی رایگان سایت آموزشیتو بساز!
طراحی سایت آموزش آنلاین
در دورهی آموزشی رایگان سایت آموزشیتو بساز، یاد میگیرید یک سایت آموزش آنلاین برای خودتون بسازید!
دورهی آموزشی آنلاین ۰ تا ۱۰۰
ایده تا راه اندازی کسب و کار اینترنتی
در این دورهی آموزشی جامع، از ۰ تا ۱۰۰ ایدهپردازی تا طراحی وبسایت رو یاد میگیریم. در واقع کسب و کار اینترنتیمون رو راه میاندازیم.
دورهی آموزشی بوت استرپ
آموزش HTML و CSS
بوت استرپ، فریموورکی است که به شما کمک میکند سایتی طراحی کنید که بخوبی در موبایل، تبلت و دسکتاپ نمایش داده شود. برنامه نویسی وب را از اینجا شروع کنید.
دورهی آموزش کامل وردپرس
آموزش شروع طراحی سایت
در دورهی آموزش وردپرس، بطور کامل از نصب وردپرس، تا راه اندازی یک وبسایت حرفهای را با هم میآموزیم.