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

وردپرس: ارور 403 و فایل htaccess

همانطور که قبلا در این مطلب اشاره شد، خطای مرسوم 403 معمولا چند حالت دارد: یا از ناحیه فایل htaccess است؛ یا به دلیل آسیب‌دیدگی و حذف‌ فایل index.php؛ یا تنظیمات اشتباه افزونه‌ها و تداخل‌شان با یکدیگر یا تغییر سطح دسترسی (Permission) فولدرها و فایل‌های روت سایت.

در اینجا به حالت اول می‌پردازیم. فایل htaccess یک فایل کانفیگ است که وب‌سرورهای آپاچی استفاده می‌کنند و کاربردش اصولا تغییر تنظیمات نرم‌افزار وب سرور آپاچی و فعال‌سازی/غیرفعال‌سازی ویژگی‌ها و عملکردهای مختلف این نرم افزار است (مثلا برای ریدایرکت خطای 404، مسدودسازی دسترسی به یک برگه، رمزگذاری روی محتوا، جلوگیری از هات‌لینک تصاویر سایت و بسیاری موارد دیگر، می‌توان دستوراتی را از طریق htaccess اجرا کرد).

مورد زیر نمونه‌ای از حالت اولِ خطای 403 است که مستقیما به htaccess مربوط می‌شود:

در اینجا سرور امکان خواندن فایل htaccess را ندارد و این یعنی یا سطح دسترسی فایل نامناسب است و یا آسیب دیده و Corrupt شده است. حالا باید چکار کرد؟

1) ابتدا باید سطح دسترسی فایل htaccess را بررسی کرد (با کلیک راست و انتخاب گزینه Permission). سطح دسترسی پیش‌فرض این فایل باید عدد 644 باشد.

همین مرحله را باید برای فولدر public_html هم تکرار کرد. در اینجا سطح دسترسی فولدر به طور پیش‌فرض باید عدد 755 باشد.

2) اگر مشکل از سطح دسترسی نباشد، بهتر است نام فایل htaccess موقتا تغییر داده شود (مثلا به htaccess_old) تا ببینیم که وب‌سایت برمی‌گردد یا نه.

3) چنانچه تغییر نام فایل هم افاقه نکند، بهتر است یک فایل htaccess جدید و سالم درست شود. برای اینکار باید یک فایل جدید بسازید، نامش را .htaccess بگذارید (به «نقطه» قبل از نام دقت کنید) و سپس کدهای زیر را به آن اضافه کنید:

# BEGIN WordPress RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

در اکثر موارد و بنا به تجربه با یکی از سه قدم بالا (یا گاهی ترکیبی از آن‌ها) خطای 403 برطرف می‌شود. فقط نکته آخر اینکه اگر از افزونه امنیتی استفاده می‌کنید، بهتر است با تغییر نام فولدر آن افزونه موقتا غیرفعالش کنید و ضمنا کش مرورگر را هم خالی کنید (چون ممکن است سایت برگشته باشد، ولی خطای 403 همچنان در کش مرورگر شما باقی مانده و نمایش داده شود). نهایتا اینکه خراب شدن فایل htaccess یا تغییر سطح مجاز دسترسی می‌تواند نتیجه آلودگی با بدافزار بوده باشد، بنابراین خوب است که در صورت بازگشت سایت به حالت اول یکبار با افزونه‌هایی مثل Malcare و Wordfence و نظایر این‌ها اسکن شود.

وندا نوژن

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