403 Forbidden xatosi 404 dan farqli ravishda «sahifa topilmadi» degani emas. Server so'ralgan manzilni topdi, lekin uni sizga ko'rsatishga ruxsat yo'q deb hisobladi. Bu qaror turli darajalarda qabul qilinishi mumkin: fayl tizimidagi ruxsatlar, veb-server sozlamalari, .htaccess qoidalari, xavfsizlik plaginlari yoki tarmoq darajasidagi IP bloklari. Shuning uchun 403 ni tuzatishda avval xato kimga va qaysi manzilda chiqayotganini aniqlab olish muhim, chunki bu sababni ancha toraytiradi.
Xato kimda va qayerda chiqayapti
Avval oddiy savollarga javob toping. Xato butun saytda chiqayaptimi yoki faqat bitta papkada, masalan /wp-admin/ yoki /uploads/ da? U hamma foydalanuvchilarda bormi yoki faqat sizning kompyuteringizda va ofis tarmog'ingizda? Boshqa tarmoqdan, masalan mobil internetdan ochib ko'ring. Agar mobil internetda sayt ochilsa-yu, ofis Wi-Fi'da 403 chiqsa, sabab deyarli aniq IP bloklashda: xavfsizlik tizimi yoki firewall sizning IP manzilingizni shubhali deb belgilagan bo'lishi mumkin.
Agar xato faqat bosh sahifada chiqsa, ichki sahifalar esa ishlasa, ko'pincha muammo index faylida bo'ladi. Faqat ma'lum papkada chiqsa, o'sha papkadagi .htaccess yoki ruxsatlarni tekshirish kerak.
Index fayli yo'qligi va papka ro'yxati
Siz example.uz manzilini ochganingizda server sayt ildizidan index.php yoki index.html faylini qidiradi. Agar bunday fayl bo'lmasa va papka tarkibini ko'rsatish o'chirilgan bo'lsa, server 403 qaytaradi. Bu ko'pincha fayllar noto'g'ri papkaga yuklanganda bo'ladi: masalan, arxiv ochilganda barcha fayllar www/example.uz/site/ ichida qolib ketadi, ildizda esa hech narsa yo'q. Fayl menejerida sayt ildizini oching va index fayli aynan o'sha joyda turganini tekshiring.
Papka tarkibini ochiq ko'rsatishni yoqish muammoni yechmaydi, aksincha, xavfsizlikni pasaytiradi. To'g'ri yo'l fayllarni kerakli joyga ko'chirish yoki index faylini yaratishdir.
Fayl va papka ruxsatlari
Veb-server faylni o'qiy olmasa, 403 qaytaradi. Odatiy to'g'ri ruxsatlar: papkalar uchun 755, fayllar uchun 644. Agar papkaga 700 yoki faylga 600 qo'yilgan bo'lsa va veb-server boshqa foydalanuvchi nomidan ishlasa, kirish rad etiladi. Ba'zi FTP dasturlari yoki arxivdan chiqarish jarayoni ruxsatlarni noto'g'ri o'rnatib qo'yadi. SSH orqali tekshirish va tiklash mumkin:
ls -la ~/www/example.uz
find ~/www/example.uz -type d -exec chmod 755 {} \;
find ~/www/example.uz -type f -exec chmod 644 {} \;
Fayl egasi ham ahamiyatga ega. Agar fayllar root yoki boshqa foydalanuvchi nomidan yaratilgan bo'lsa, sayt foydalanuvchisi ularni o'qiy olmasligi mumkin. ISPmanager fayl menejerida egasi va ruxsatlar ko'rsatiladi, ularni u yerdan ham o'zgartirish mumkin.
.htaccess dagi taqiqlovchi qoidalar
.htaccess faylida kirishni cheklovchi qoidalar bo'lishi mumkin va ular ba'zan siz kutmagan joyda ishlaydi. Masalan, admin panelni himoya qilish uchun qo'yilgan IP cheklovi sizning provayderingiz IP manzili o'zgargach, o'zingizni ham bloklab qo'yadi. Apache 2.4 da bunday qoidalar quyidagicha ko'rinadi:
<Files "wp-login.php">
Require ip 203.0.113.10
</Files>
# yoki butun papkani yopish
Require all denied
Eski Apache sintaksisida esa Order deny,allow va Deny from all qatorlari ishlatiladi. Bunday qatorlarni qidirib toping va ular hozirgi vaziyatga mosligini tekshiring. Tekshirish uchun faylni vaqtincha qayta nomlash mumkin:
mv .htaccess .htaccess.off
Agar shundan keyin 403 yo'qolsa, sabab aniq shu faylda. Shuni unutmangki, .htaccess faqat sayt ildizida emas, ichki papkalarda ham bo'lishi mumkin va ular yuqoridagi qoidalarni o'zgartiradi. Masalan, uploads papkasidagi .htaccess xavfsizlik uchun PHP fayllarni bajarishni taqiqlasa, bu to'g'ri sozlama; lekin u rasmlarni ham yopib qo'ysa, sayt rasmlarsiz ochiladi.
Xavfsizlik plaginlari va firewall
WordPress xavfsizlik plaginlari ko'p marta noto'g'ri parol kiritilgan IP manzilni vaqtincha bloklaydi va bu ham 403 ko'rinishida chiqishi mumkin. Misol uchun, Samarqanddagi xususiy klinika saytida administrator yangi telefondan bir necha marta eski parolni kiritgan, natijada plagin uning IP manzilini bloklagan va xodimlar ofisdan admin panelga kira olmay qolgan. Bunday holatda plagin sozlamalaridagi bloklangan IP ro'yxatini tozalash yoki plagin papkasini vaqtincha qayta nomlash yordam beradi.
Server darajasida ham himoya tizimlari ishlaydi: juda ko'p so'rov yuborgan yoki shubhali naqshdagi so'rovlar (masalan, URL ichida SQL buyruqlari) avtomatik bloklanishi mumkin. Agar o'zingizning IP manzilingiz bloklangan deb o'ylasangiz, uni texnik yordamga yuborish kerak, chunki bunday bloklar mijoz tomonidan ko'rinmaydi.
Ma'lum fayl turlariga kirish
Ba'zan 403 faqat ma'lum fayllarda chiqadi va bu to'g'ri holat bo'lishi mumkin. Ko'plab serverlarda .env, .git, zaxira arxivlari yoki konfiguratsiya fayllariga brauzer orqali kirish ataylab yopiladi, chunki ular parollar va maxfiy kalitlarni o'z ichiga oladi. Agar siz shunday faylni brauzerda ochmoqchi bo'lsangiz va 403 olsangiz, bu himoya ishlayotganini bildiradi. Bunday fayllarni FTP yoki fayl menejeri orqali yuklab olish kerak.
Tekshirish tartibi
Sababni tez topish uchun quyidagi ketma-ketlik qulay:
- Saytni boshqa tarmoqdan (mobil internet) ochib, IP blokini istisno qiling.
- Sayt ildizida index fayli borligini tekshiring.
- Papka va fayl ruxsatlarini 755/644 ga keltiring, egasini tekshiring.
- .htaccess ni vaqtincha o'chirib, natijani ko'ring.
- Xavfsizlik plaginlarini vaqtincha o'chirib ko'ring.
- Sayt xato jurnalida «client denied» kabi yozuvlarni qidiring.
Xato jurnali ko'pincha aniq javob beradi: Apache logida qaysi qoida yoki qaysi ruxsat sababli kirish rad etilgani yoziladi. Agar barcha qadamlardan keyin ham sabab topilmasa, sayt.uz kabinetidagi texnik yordam bo'limiga sahifa manzili va IP manzilingizni yozib tiket qoldiring.