IIS7 a Custom Error Pages
Webdesign, CMS
26.07.09
Pokud používáte v IIS7 Custom Error Pages, tak je nutné při volbě "Execute URL" zaslat v onom odkazovaném souboru i patřičný HTTP stav.
Apache se v tomto chová jinak, a i když 404 přesměrujete na onen error.html
soubor, tak stále vyhodí "404" jako HTTP hlavičku. IIS nikoliv, soubor je totiž nalezen a HTTP kód je "200".
Jediná možnost jak ošetřit v IIS7 při "Execute URL" HTTP kód je tedy použít třeba PHP a v něm pomocí funkce header()
jej vygenerovat a až pak zobrazit vlastní ERROR stránku.
Samotný HTML soubor jako 404 stránka fungovat nebude (pokud použijete "Execute URL"). Je to samozřejmě poměrně logické, ale to by člověk nesměl dělat věci "automaticky" podle toho, jak je kdysi dělal na Apache.
Pokud si nadefunuji například 404 jinou než výchozí stránkou, očekávám, že se mi objeví v hlavičce 404. IIS toto tedy hrubě porušuje a obcházet to přes header() je jako opravovat rovnák ohýbákem. Výchozí apache 404 stránka je přece taky "nalezená" chybová stránka, že?
[1] Samozrejme,ze mas pravdu. To nie Apache to robi zle. Ten nastavi header a payload sa potom natiahne napriklad z HTML suboru. Namiesto toho nechapem preco mi ISS nastavi header na 404 a potom si ho necha prepisat. Mne sa zase IIS zda nelogicke.
Ono je vzdy problem,ze ked Microsoft nieco robi zle, tak to radsej povazujeme za logicke, ved to tak robi Microsoft,ze? Prekvapuje ma ako funguje to vymyvanie mozgov