Ošetření HTTP chybových kódů na IIS 7.0 a vyšších - 404 a další
Na serverech s IIS 7.0 a vyšších můžete kódy HTTP chyb ošetřit pomocí příkazů v souboru web.config.
Jedním z těchto kódů je kód 404 - stránka nenalezena. Chybu 404 použijeme v příkladu - chybu obslouží následující příkazy (tagy) v souboru web.config v prostoru <system.webServer>
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/moje404.html" responseMode="Redirect" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>
- v parametru statusCode tagu <error> specifikujeme url k zobrazení v případě chyby. Relativní cesta musí vždy začínat lomítkem
- parametr responseMode tagu <error> nám nabízí tyto možnosti:
- Redirect - přesměrování na zadanou url
- ExecuteURL - zobrazení obsahu zadané url beze změny adresy v adresním řádku prohlížeče
- pomocí dvojice tagů <remove> a <error> můžeme stejným způsobem přidat další chybové kódy - 400, 401, 403, ...
Příklad kódu v souboru web.config
Souboru web.config s tímto obsahem nahrajeme do adresáře, ve kterém se mají příkazy projevit. Nesmíme však zapomenout, že příkazy přejímají i další podadresáře (pokud neobsahují vlastní web.config).
<?xml version="1.0"?>
<configuration>
<system.web>
<!--
nějaké příkazy
-->
</system.web>
<system.webServer>
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="401" subStatusCode="-1" />
<error statusCode="404" path="/moje404.html" responseMode="Redirect" />
<error statusCode="401" path="http://nazev-domeny.cz/informace.html" responseMode="ExecuteURL" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>