Apache 2.4 erişim kontrolünde `Require` directive’i kullanılır. Hassas dosyalar, yedekler ve upload klasöründeki çalıştırılabilir uzantılar seçici şekilde engellenebilir; IP allowlist ise reverse proxy/Cloudflare arkasında gerçek istemci IP’si doğru yapılandırılmadan uygulanmamalıdır.
403 Forbidden
Require all denied
client denied by server configuration
AH01630: client denied
Directory index forbiddenApache 2.4 erişim kontrolünde `Require` directive’i kullanılır. Hassas dosyalar, yedekler ve upload klasöründeki çalıştırılabilir uzantılar seçici şekilde engellenebilir; IP allowlist ise reverse proxy/Cloudflare arkasında gerçek istemci IP’si doğru yapılandırılmadan uygulanmamalıdır.
Apache, LiteSpeed, Plesk proxy veya NGINX-only yapıyı ayırmadan `.htaccess` sonucu beklemeyin.
Mevcut dosyayı tarihli yedekleyin; Apache/LiteSpeed hata kaydındaki directive ve satırı bulun.
Redirect, rewrite, header ve erişim kurallarını aynı anda topluca değiştirmeyin.
curl ile status, Location, Content-Type ve redirect sayısını ölçüp cache katmanlarını ayrıca kontrol edin.
Tüm site kökünde koşulsuz `Require all denied` kullanmayın.
Anlamı: Hassas yapılandırma dosyası web üzerinden erişilebilir.
Muhtemel neden: Erişim kuralı yok veya NGINX-only.
Anlamı: Yüklenen zararlı dosya çalıştırılabilir.
Muhtemel neden: Upload dizininde script execution açık.
Anlamı: Kural yanlış klasör veya geniş FilesMatch’te.
Muhtemel neden: Scope hatası.
Anlamı: Apache proxy IP’sini görüyor.
Muhtemel neden: mod_remoteip veya trusted proxy ayarı yok.
Anlamı: Origin erişim kuralı Cloudflare IP’leriyle uyumsuz.
Muhtemel neden: Remote IP yanlış.
Anlamı: Options override izni kapalı.
Muhtemel neden: AllowOverride Options yok.
Anlamı: Order/Deny/Allow eski syntax.
Muhtemel neden: Apache 2.4 geçişi.
Anlamı: Korumalı dosya başarıyla engelleniyor.
Muhtemel neden: Require/FilesMatch eşleşti.
Bu ifadeyle eşleşen kayıt bulunamadı.
for p in .env .git/config backup.zip database.sql error.log; do curl -sS -o /dev/null -w "$p %{http_code}\n" "https://example.com/$p"; doneYaygın hassas dosyaların HTTP durumunu kontrol eder.
curl -sL https://example.com/uploads/ | head -n 30Index dosyası olmayan klasörde listeleme çıktısı olup olmadığını gösterir.
find uploads -type f \( -iname '*.php' -o -iname '*.phtml' -o -iname '*.phar' -o -iname '*.php*' \) -printUpload klasöründeki çalıştırılabilir PHP benzeri dosyaları listeler.
grep -RniE 'Require|FilesMatch|Files>|Options -Indexes|Order|Deny|Allow' . --include='.htaccess' | head -n 120Tüm alt dizin erişim kurallarını bulur.
curl -sSI https://example.com/ip-test | grep -iE '^server:|^cf-connecting-ip:|^x-forwarded-for:|^x-real-ip:'Proxy/CDN işaretlerini kontrol eder; origin uygulamasının ayrıca loglanması gerekir.
tail -n 100 /var/log/apache2/access.log 2>/dev/null || tail -n 100 /usr/local/apache/domlogs/example.com 2>/dev/null || tail -n 100 /var/log/httpd/access_log403 ve istemci IP kayıtlarını gösterir.
<FilesMatch ".*">
Require all denied
</FilesMatch><FilesMatch "(?i)^(?:\.env|\.git|.*\.(?:sql|log|bak|ini|zip))$">
Require all denied
</FilesMatch>Require all denied<FilesMatch "(?i)\.(?:php[0-9]?|phtml|phar)$">
Require all denied
</FilesMatch>Require ip %{HTTP:X-Forwarded-For}<RequireAny>
Require ip 203.0.113.10
Require ip 198.51.100.0/24
</RequireAny>IndexIgnore *Options -IndexesFilesMatch, Require ve Options directive’leri uygun AllowOverride sınıfıyla çalışır.
IP kuralları gerçek istemci yerine proxy IP’sini görebilir.
Config, log, backup ve upload dizinleri uygulama erişimini bozmadan korunmalıdır.
Hayır. NGINX `.htaccess` dosyalarını okumaz. Kuralın `server` veya `location` yapılandırmasına çevrilmesi gerekir.
Genellikle hayır; Apache `.htaccess` dosyasını istek sırasında değerlendirir. Ancak sunucu VirtualHost, modül veya AllowOverride değişikliğinde reload/restart gerekir.
Mevcut dosyanın tarihli yedeği alınmalı, aktif document root doğrulanmalı ve değişiklik staging veya düşük trafikli zamanda test edilmelidir.
cPanel’de çoğunlukla `public_html`, Plesk’te `httpdocs` içindedir; addon domain ve subdomainlerin document root’u farklı olabilir.
LiteSpeed Apache uyumluluğu sayesinde kuralların büyük bölümünü destekler; bazı modül ve handler davranışları farklı olabilir.
Apache/LiteSpeed error log içindeki tam directive ve satır kaydıdır. Dosyayı rastgele silmek yerine loga göre geri alınmalıdır.
Alan adı, document root, proxy, WordPress ve sunucu yapısı doğrulanmadan doğrudan eklenmemelidir. Örnekler uyarlanıp test edilmelidir.
cPanel, Plesk, LiteSpeed, WordPress, özel PHP ve WISECP yapılarında yönlendirme, rewrite, CORS, erişim ve 500 hatalarını loglarla birlikte inceliyoruz.