روزمرگی فنی
روزمرگی فنی
خواندن ۳ دقیقه·۳ سال پیش

وردپرس و خطای ملعون 403!

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

بسته به نوع مرورگری که استفاده می‌کنید، این خطا می‌تواند با عناوین مختلفی نمایش داده شود؛ مثلا:

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

1) بررسی فایل‌های هسته اصلی وردپرس

اول از همه باید چک کنید که همه فایل‌های وردپرس صحیح و سالم سرجایشان هستند؛ به خصوص فایل‌ index.php در روت سایت (مسیر public_html) و داخل فولدرهای wp-adminو wp-content. اگر هر کدام از این فایل‌ها نبودند، مشکل از همینجا آب می‌خورد و باید یک بار دیگر وردپرس را نصب کنید.

2) فایل .htaccess

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

3) غیرفعال کردن افزونه‌ها

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

-یا فولدر Plugins را تغییر نام بدهید (مثلا به Plugins_old)

-و یا از phpMyAdmin در کنترل پنل وارد دیتابیس خود بشوید، به جدول wp_options بروید و دنبال active_plugins بگردید (این گزینه ممکن است در صفحه دوم یا صفحات بعدی نمایش داده شود). بعد از یافتن، Edit را بزنید و فیلد Option Value را به عبارت زیر تغییر دهید تا همه افزونه‌ها غیرفعال شوند:

a:0:{}

حالا مجددا سایت خود را چک کنید (ترجیحا در همه این موارد کش مرورگر خود را هم پاک کنید).

4) بررسی سطح دسترسی‌ها

وقتی در کنترل پنل وردپرس را نصب می‌کنید یا فایل و فولدر جدیدی می‌سازید، اتوماتیک سطوح دسترسی پیش‌فرضی به آن‌ها تعلق می‌گیرد (مثلا از دسترسی کامل تا اجازه ویرایش تا صرفا اجازه مشاهده). وقتی روی فولدرها (مثل wp-admin، wp-content و غیره) رایت‌کلیک می‌کنید و گزینه Change Permissions را می‌زنید، عموما عدد 755 را می‌بینید. در مورد فایل‌ها این عدد معمولا 644 است (البته به استثنای فایل wp-config.php که این عدد 600 است). بنابراین می‌توانید فولدرها و فایل‌های روت سایت را از نظر سطح دسترسی بررسی کنید و در صورت نیاز سطح دسترسی را اصلاح کنید.

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


البته این مورد پیشنهاد نمی‌شود (مگر اینکه دقیقا بدانید دارید چه کار می‌کنید). چون دادن سطح دسترسی نادرست می‌تواند امنیت سایت یا سرور شما را به خطر بیندازد و راه را برای ورود هکرها و بدافزارها باز کند.

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

وندا نوژن

خطای 403وردپرسhtaccessافزونهpermission
روزها درگیر مصائب فنی، شب‌ها مشغول ثبت راه‌حل‌های یافتنی
شاید از این پست‌ها خوشتان بیاید