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

Published by

Jiri Brejcha

Jiri is passionate about mobility ranging from Wi-Fi to folding bikes;-) He is a Wi-Fi Technical Solutions Architect at Cisco UK, proud member of the Cisco Live Network Operations Center deployment team, and WLAN Pi development team. If he is not working, he is most likely riding his Brompton bike. All opinions are my own, not Cisco's.

2 thoughts on “WordPress: Nastavení přepisu URL na Microsoft IIS 6.0”

  1. Zdravim. Kvalitny prispevok. Tuto stranku pozeram sem-tam a vzdy na nej najdem vela interesantnych veci. Touto cestou by som chcel vyjadrit respekt k autorom, ktori ju udrziavaju aktualnu. Peter Farbiak

Leave a Reply to Jiří Brejcha Cancel reply

Your email address will not be published. Required fields are marked *