IIS Üzerinde “404 Not Found” Hatası Nasıl Düzeltilir?
IIS Üzerinde “404 Not Found” Hatası Nasıl Düzeltilir?
IIS (Internet Information Services) üzerinde çalışan web sitelerinde sık karşılaşılan hatalardan biri “404 Not Found” uyarısıdır. Bu hata, istemcinin (tarayıcının) talep ettiği kaynağın (sayfa, dosya, API) sunucuda bulunamadığını gösterir. Ancak çoğu zaman bu durum dosya eksikliğinden değil, yanlış yönlendirme, MIME tipi veya izin sorunlarından kaynaklanır. Bu rehberde, IIS üzerinde “404” hatasının olası nedenlerini ve kesin çözüm adımlarını anlatıyoruz.
- 1. Temel Hata Anlamı
- 2. IIS’te Hata Türünü Doğrulama
- 3. Dosya/Dizin Yapısını Kontrol Edin
- 4. Default Document Ayarlarını Kontrol Edin
- 5. MIME Türü (MIME Type) Eksikliği
- 6. Uygulama Havuzu (App Pool) Ayarlarını Doğrulama
- 7. Handler Mapping Kontrolü
- 8. Fiziksel Yol (Physical Path) Yetkileri
- 9. URL Rewrite veya Web.config Sorunları
- 10. Yönlendirme (Redirect) veya Alias Hataları
- 11. Modül (Module) Çakışmaları
- 12. Log (Günlük) Dosyalarını İnceleme
- Sonuç
1. Temel Hata Anlamı
404 Not Found, sunucuya yapılan isteğin doğru şekilde ulaşmasına rağmen, istenen dosya veya URL’nin karşılığının bulunamadığını belirtir. Hata genellikle şu durumlarda ortaya çıkar:
- Dosya veya dizin gerçekten mevcut değil.
- Yanlış sanal dizin (virtual directory) yapılandırması.
- Uygulama havuzu (App Pool) yanlış framework veya izinle çalışıyor.
2. IIS’te Hata Türünü Doğrulama
“404.0”, “404.2”, “404.3” gibi alt kodlar (sub-status) hatanın kaynağını gösterir. Örneğin:
- 404.0 → Dosya veya dizin bulunamadı.
- 404.2 → Web servisi erişimi engellenmiş.
- 404.3 → MIME türü engellenmiş.
Alt kodu görmek için Detailed Errors özelliğini etkinleştirin:
IIS Manager → Error Pages → Edit Feature Settings → Detailed Errors
3. Dosya/Dizin Yapısını Kontrol Edin
İlk adım olarak site kök dizininde (örneğin C:\inetpub\wwwroot) dosyaların gerçekten var olduğundan emin olun. Özellikle index.html veya default.aspx dosyası eksikse IIS varsayılan sayfayı bulamayabilir.
4. Default Document Ayarlarını Kontrol Edin
Varsayılan açılış dosyası listesinde doğru dosya türü bulunmuyorsa 404 hatası alınabilir.
IIS Manager → Site → Default Document → Add → index.html veya default.aspx
5. MIME Türü (MIME Type) Eksikliği
IIS, tanımlanmamış dosya türlerini güvenlik nedeniyle sunmaz. Örneğin .json, .webp veya özel uzantılı dosyalar için MIME tipi eklemek gerekir:
IIS Manager → MIME Types → Add
Extension: .json
MIME type: application/json
6. Uygulama Havuzu (App Pool) Ayarlarını Doğrulama
Yanlış çalışan uygulama havuzu, framework uyuşmazlığı veya kimlik hatası da 404’e yol açabilir.
- Siteye ait App Pool’un durumu “Started” olmalı.
- .NET CLR Version değeri uygulama türüne uygun olmalı (ör. v4.0).
- Identity kısmı “ApplicationPoolIdentity” olarak ayarlanmalı.
7. Handler Mapping Kontrolü
IIS, belirli uzantıları hangi modülün işleyeceğini Handler Mappings üzerinden belirler. Eğer .php, .aspx veya .json için handler eksikse istek 404 olarak döner.
Örnek: ASP.NET handler’ı eklemek için:
IIS Manager → Handler Mappings → Add Managed Handler
Request path: *.aspx
Type: System.Web.UI.PageHandlerFactory
8. Fiziksel Yol (Physical Path) Yetkileri
Uygulama dizininde “Read” izni yoksa, IIS dosyayı bulsa bile erişemez. Düzeltmek için:
Sağ tık → Properties → Security → Edit → Add → IUSR → Read & Execute izni
9. URL Rewrite veya Web.config Sorunları
Yanlış yapılandırılmış web.config veya Rewrite Rule, IIS’in gerçek dosya yolunu bulamamasına neden olabilir. Özellikle WordPress veya Angular projelerinde sık görülür.
<rewrite>
<rules>
<rule name="Redirect all" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="index.html" />
</rule>
</rules>
</rewrite>
10. Yönlendirme (Redirect) veya Alias Hataları
Siteyi farklı bir dizine taşıdıysanız veya sanal dizin (alias) kullandıysanız, IIS’in doğru kök yolu (root path) gösterdiğinden emin olun:
IIS Manager → Site → Basic Settings → Physical Path
11. Modül (Module) Çakışmaları
URL Rewrite, ARR veya PHP modülleri gibi üçüncü parti eklentiler, aynı istekleri yönlendirmeye çalıştığında çakışma yaratabilir. Gereksiz modülleri devre dışı bırakın.
12. Log (Günlük) Dosyalarını İnceleme
IIS logları genellikle şu dizindedir:
C:\inetpub\logs\LogFiles\W3SVC1
Log dosyasında 404 satırlarını filtreleyerek hangi URL’nin hata verdiğini görebilirsiniz.
Sonuç
IIS 404 hatası, genellikle küçük yapılandırma veya izin hatalarından kaynaklanır. Dosya yollarını, MIME tiplerini, App Pool ayarlarını ve web.config yönlendirmelerini kontrol ederek çoğu durumda sorunu çözebilirsiniz. Daha kararlı ve optimize edilmiş Windows Hosting çözümleri için HostLigo Kurumsal Hosting veya Premium VDS tercih edilebilir.