403 Access Denied (403 Forbidden Access is Denied veya 403 Forbidden) hatası, istek gönderdiğiniz URL’ye erişim izninizin olmadığını belirten bir hatadır. Bu hata birçok sebeple meydana gelebilir;
- Web servisi tarafından bloklanmış olabilirsiniz.
- Web servisine özgü konfigürasyon dosyasında IP adresiniz için bir bloklama komutu olabilir (.htaccess, web.config gibi).
- Web sunucusunda ModSecurity kurulu olabilir ve gönderdiğiniz istekler ModSecurity kurallarına takılmış olabilir.
- Dosyalarınızın chmod izinlerini web servisiniz kabul etmiyor olabilir.
- Sitenize hiç dosya yüklememiş olabilirsiniz.
Çözüm
Web servisi üzerinden bloklanıp bloklanmadığınızı hosting sağlayıcınız kontrol edebilir. Bu nedenle bu maddeyi es geçiyorum.
Konfigürasyon dosyasında belli bir IP adresini bloklamak isterken, yanlış bir kod satırı yazmış olabilirsiniz, bu nedenle erişemiyor olabilirsiniz. Htaccess dosyaları için hazırlamış olduğum bir yazı mevcut, bu adresten bakabilirsiniz.
Web sunucusunda ModSecurity aktif ise, hosting yönetim panelinden kapatabiliyorsanız pasif duruma getirebilirsiniz. Hosting yönetim panelinde düzenleyebileceğiniz bir bölüm yoksa htaccess dosyanıza aşağıdaki kodları yazabilirsiniz;
<IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule>
Dosyalar için chmod izinleri 644, dizinler için 755 olmalıdır. Eğer dosyanız 777 iznine sahipse, web servisi isteklerinizi engelleyebilir. Örneğin LiteSpeed yüklü bir web sunucusunda chmod değerleri 777 olan sayfalara erişim izni verilmemektedir.
Sitenize hiç dosya yüklemediyseniz ve sitenize www.abc.com şeklinde ulaşmaya çalıştıysanız, index dosyanız olmadığı için 403 hatası verecektir. Tabi, www.abc.com/test.txt şeklinde adrese girdiğinizde de 404 Page Not Found hatası görürsünüz, konuyla ilgisi yok demeyin, bir index.html dosyası yükleyin anlayacaksınız 🙂