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

Nefunkční upload obrázků do WordPressu přes Flash

Možná vám stejně jako mě najednou přestalo fungovat nahrávání obrázků do WordPressu pomocí integrovaného flashového nástroje. Pokud potřebujete nahrát na server více obrázků najednou, je právě tento tool ideálním pomocníkem. Doposud s tím nebyl sebemenší problém, ale nová verze Adobe Flash Player 10 situaci trošku komplikuje. Jednoduše řečeno, máte-li verzi 9 vše funguje. Upgradujete na verzi 10 a upload obrázků přestane fungovat. Nezkoumal jsem, v čem konkrétně může být problém. Potřeboval jsem rychlé praktické řešení. Tady je.

1. Odinstalujte přes Přidat nebo odebrat programy desítkovou verzi Flashe.

2. Stáhněte si Flash Player 9 a nainstalujte ho: flashplayer9r151_win.zip

3. Restartujte browser a upload bude opět funkční.

Situace se určitě dá řešit i jinak a mnohem elegantněji. Pokud víte jak, podělte se o vaše poznatky v diskuzi pod článkem.