Když z webového serveru IIS nejde stáhnout ISO image

Představte si, že někomu potřebujete na IIS webserver vypublikovat ISO image, který by si měl stáhnout. Image nakopírujete na webserver, ale při zadání odkazu do browseru se zobrazí jen Chyba HTTP 404 – Soubor nebo adresář nebyl nalezen. Problém je v tom, že IIS 6.0 musí znát pro každou příponu souboru konkrétní typ MIME. Jakmile nezná tuto vazbu,  odpoví vám výše zmíněnou chybou.

Potřebujeme tedy IIS serveru sdělit, jaký typ MIME odpovídá souborové příponě ISO:

  1. Otevřete IIS Microsoft Management Console (MMC), klepněte pravým tlačítkem myši na název místního počítače a potom klepněte na  Vlastnosti.
  2. Klepněte na tlačítko typy MIME.
  3. Klepněte na tlačítko Nový.
  4. Do pole Přípona zadejte příponu “.iso” bez uvozovek.
  5. Do pole Typ MIME zadejte “application/octet-stream“.
  6. Klepnutím na OK uložte nastavení.
  7. Restartujte službu IIS.

Tentýž postup můžete aplikovat na jakýkoliv další souborový typ.

WordPress: Nastavení přepisu URL na Microsoft IIS 6.0

Pokud provozujete redakční systém WordPress na platformě Windows Server 2003, možná jste narazili na potíže s přepisem URL trvalých odkazů. Narozdíl od Apache totiž  Microsoft IIS 6.0 nepodporuje přepis URL (ekvivalent mod_rewrite). Je třeba použít filtr, který se o vše postará.

Původní odkazy vypadají přibližně takto:
http://www.jiribrejcha.net/index.php/2009/07/instalujte-ale-potichu/

Za použití přepisu URL se zbavíte části “index.php” v adrese a můžete odkaz přeformátovat do jakékoliv jiné podoby pomocí pravidel:
http://www.jiribrejcha.net/2009/07/instalujte-ale-potichu/

Zmínil jsem, že IIS 6.0 bohužel nic takového v základu neumí. Pro tyto účely je nutné použít některý z pluginů přepisujících adresu. I přes pár hodin strávených s jeho nastavením a testováním jsem si vybral plugin Ionic’s ISAPI Rewrite Filter, který je mimochodem doporučován i vývojáři IIS. Abyste s instalací nemuseli zápasit stejně jako já, tady je návod, jak vše nastavit.

Postup nastavení přepisu URL

  1. Předpokládejme, že máte založen webový server v IIS a v něm běží WordPress. S tím samozřejmě souvisí správně nainstalované PHP a SQL server, ale o tom snad někdy příště.
  2. Stáhněte si freeware filtr Ionic’s ISAPI Rewrite Filter. Obsah archivu rozbalte například do složky “C:\windows\system32\inetsrv\rewriteurl\”.
  3. Otevřete si Správu IIS (Start, Spustit, inetmgr). Pravým tlačítkem klikněte na webový server, kde běží Wordpress a zvolte Vlastnosti.
  4. Přejděte na záložku Filtry ISAPI a klikněte na Přidat.
  5. Přidejte nový filtr viz obrázek. Cesta k souboru je “C:\windows\system32\inetsrv\rewriteurl\lib\IsapiRewrite4.dll”.
    pridat
  6. Výsledný stav vypadá takto.
    isapi
  7. Nyní restartujte IIS.
  8. Otevřete konfigurační soubor filtru “C:\windows\system32\inetsrv\rewriteurl\lib\IsapiRewrite4.ini” a jeho původní obsah nahraďte těmito pravidly pro přepis URL. Po uložení nastavení by mělo být vše funkční, stačí jen ve WordPressu změnit formát odkazů.
  9. # Rewrite odkazu pro WordPress
    RedirectRule ^/index\.php/(.*)$ /$1 [I,R=301]
    RewriteRule ^/(?!index\.php|wp-|xmlrpc)(.*)$ /index.php/$1 [I,L]

  10. Přihlaste se do administrace WordPressu a přejděte do Nastavení a do sekce Trvalé odkazy. Tam přepněte nastavení na Vlastní strukturu a vložte tento formátovací řetězec:

    /%year%/%monthnum%/%postname%/

Dokumentace pluginu hovoří o nutnosti nastavit oprávnění pro otevírání a spouštění na složce “C:\windows\system32\inetsrv\rewriteurl\lib\” pro skupinu IIS_WPG, ale ukázalo se, že to není nutné.

Ověření funkčnosti rewriteru

Pokud potřebujete zjistit, zda samotný rewriter funguje, jak má, postupujte podle tohoto návodu z dokumentace Ionic’s ISAPI Rewrite Filteru. K tomu aby vše fungovalo je potřeba mít povoleno rozšíření webových služeb v IIS podobně jako na obrázku.

enable-iis-extension