آموزش رفع خطا 403 Forbidden در وردپرس

رفع خطا 403 Forbidden در وردپرس

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

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

خبر خوب این است که این خطا معمولاً به یک نقص فنی بزرگ یا هک شدن سایت مربوط نمی‌شود، بلکه اغلب ناشی از تنظیمات نادرست مجوزهای فایل‌ها  (File Permissions)، قوانین سختگیرانه‌ی ماژول‌های امنیتی مانند Mod_Security، تداخل افزونه‌ها یا تنظیمات نادرست فایل .htaccess  است. جالبتر اینکه حتی گاهی یک افزونه‌ ساده یا به‌روزرسانی اخیر می‌تواند منجر به این خطا شود.

Error  403 چیست؟  

خطای 403 (Forbidden) یک کد وضعیت HTTP است که به معنای «دسترسی ممنوع» می‌باشد. از نظر فنی، وقتی سرور هاستینگ شما این خطا را نمایش می‌دهد، یعنی درخواست شما (مثلاً برای باز کردن یک صفحه، ورود به پیشخوان وردپرس یا آپلود فایل) به درستی دریافت شده و سرور آن را فهمیده است، اما سرور به هر دلیلی از پاسخ دادن به آن درخواست خودداری می‌کند، چون شما مجوز لازم را ندارید.  برخلاف خطای 401 که می‌گوید «شناسایی نشده‌ای، لطفاً لاگین کن»، خطای 403 یعنی «حتی اگر لاگین هم کرده باشی یا قبلاً اجازه داشته‌ای، الان به این بخش خاص دسترسی نداری».

از نظر کاربردی و برای رفع مشکل، مهم است بدانید که خطای 403 در وردپرس معمولاً به ۴ دلیل اصلی رخ می‌دهد:

  • تنظیمات نادرست مجوز فایل‌ها (مثلاً تنظیم 755 به جای 644 برای فایل‌ها).
  • قوانین سختگیرانه ماژول امنیتی Mod_Security در هاست که درخواست شما را شبیه به حمله تشخیص داده است.
  • وجود دستورات اشتباه یا خراب در فایل .htaccess که دسترسی به پوشه خاصی را مسدود کرده است.
  • تداخل یک افزونه امنیتی یا فایروال وردپرسی که IP شما را به اشتباه بلاک کرده است.

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

وجود مشکل در فایل  .htaccess

بسیاری از مواقع، ریشه خطای 403 در وردپرس به فایل کوچکی به نام .htaccess برمی‌گردد. اگر یک دستور اشتباه، یک قانون امنیتی نادرست یا حتی یک کاراکتر اضافه در این فایل نوشته شود، سرور بلافاصله خطای 403 را نمایش می‌دهد. به همین دلیل، بازنشانی یا بازسازی فایل .htaccess یکی از مؤثرترین روش‌ها برای رفع خطای 403 است.

برای انجام این کار، قدم اول وارد شدن به هاست است. پس از ورود به کنترل پنل به دنبال گزینه File Manager یا «مدیریت فایل‌ها» بگردید و روی آن کلیک کنید. حالا وارد پوشه public_html شوید؛ جایی که فایل‌های اصلی وردپرس شما در آن قرار دارد. در این مسیر، باید به دنبال فایلی با نام دقیق .htaccess بگردید. اما توجه کنید که این فایل جزو فایل‌های مخفی محسوب می‌شود. یعنی اگر تنظیمات فایل منیجر شما روی «نمایش ندادن فایل‌های مخفی» باشد، ممکن است اصلاً آن را نبینید و فکر کنید که فایل وجود ندارد!

برای حل این موضوع، در صفحه فایل منیجر، روی گزینه Settings (تنظیمات) کلیک کنید. پنجره‌ای باز می‌شود که در آن گزینه‌ای به نام Show Hidden Files (نمایش فایل‌های مخفی) وجود دارد. تیک این گزینه را فعال کنید و سپس تغییرات را اعمال کنید. حالا خواهید دید که فایل .htaccess با ظاهری نیمه‌شفاف یا نقطه‌دار در لیست فایل‌ها ظاهر می‌شود.

در این مرحله، دو راه دارید. روش ایمن‌تر این است که نام این فایل را تغییر دهید، مثلاً به .htaccess_old تا اگر بعداً به محتویات آن نیاز داشتید، همچنان در دسترس باشد. روش دیگر حذف کامل فایل است. بعد از تغییر نام فایل، به بخش مدیریت وردپرس (پیشخوان) بروید. از منوی کناری، به تنظیمات > پیوندهای یکتا (Permalinks) بروید. در این صفحه، بدون اینکه هیچ تغییری در ساختار پیوندها بدهید، فقط دکمه ذخیره تغییرات را یک بار کلیک کنید.

همین عمل ساده باعث می‌شود وردپرس یک فایل .htaccess جدید و سالم با تنظیمات پیش‌فرض بسازد. حالا سایت خود را بازخوانی کنید؛ در بیشتر موارد، خطای 403 برای همیشه برطرف شده است.

 

سطح و مجوز دسترسی فایل ها درمحتویات سایت

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

برای این کار روی فولدر public_html راست کلیک و گزینه file Attributes را انتخاب کنید. در کادر Numeric Value مقدار 750 یا 755 را وارد و گزینه Recurse into subdirectories را انتخاب کنید. سپس گزینه Apply to Directories only را انتخاب کرده و  OK را بزنید.

در مرحله بعد روی پوشه public_html راست کلیک کرده و File Attributes را انتخاب کنید. گزینه Recurse into subdirectories و سپس گزینه Apply to files only را انتخاب و در بخش Numeric Value عدد 644 را وارد کنید و ok را بزنید.

در بخش روت هاست روی فایل wp-config.php کلیک کرده و گزینه File permissions را انتخاب و در بخش Numeric Value مقدار 440 را وارد کنید و OK را بزنید.

غیر فعال سازی افزونه

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

برای این کار از طریق فایل منیجر هاست وارد پوشه public_html شوید. سپس وارد پوشه wp-content  شده و پوشه plugins  را پیدا کنید. حالا کافیست نام این پوشه را به چیزی مثل plugins_old  تغییر دهید. با این کار همه افزونه‌های شما یکجا غیرفعال می‌شوند.

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

ارتباط با شرکت هاست

گاهی بعد از امتحان کردن همه روش‌ها همچنان خطای 403 پابرجا می‌ماند. در این حالت مشکل از سمت سرور و تنظیمات امنیتی هاست شما است. بسیاری از شرکت‌های هاستینگ از ماژول امنیتی به نام Mod_Security  استفاده می‌کنند که ممکن است به اشتباه درخواست شما را شبیه به حمله تشخیص داده و دسترسی شما را مسدود کند.

برای رفع این مشکل باید با پشتیبانی شرکت هاست خود تماس بگیرید. دقیقاً توضیح دهید که هنگام کار با سایت وردپرسی خود با خطای 403 مواجه شده‌اید و تمام روش‌های رایج را امتحان کرده‌اید. از آنها بخواهید موارد زیر را بررسی کنند:

  • غیرفعال کردن موقت Mod_Security  برای تست مشکل
  • چک کردن لاگ‌های خطای سرور (Error Logs) برای پیدا کردن دلیل دقیق خطا
  • بررسی اینکه آیا IP شما به اشتباه در فایروال سرور بلاک شده است یا خیر

در بیشتر موارد، شرکت هاست ظرف چند دقیقه مشکل را شناسایی و برطرف می‌کند.

Add a Comment

Your email address will not be published. Required fields are marked *