Configurando Wordpress su server Windows e IIS mi è capitato di imbattermi nella configurazione dei permalinks. Per poter utilizzare i permalinks, in generale, il server deve esser configurato con il mod_rewrite, che però non è supportato nativamente dai server Windows.
Anche se non è presente il mod_rewrite su server windows, wordpress permette comunque di utilizzare i permalinks, ma il risultato è leggermente diverso da una stessa installazione effettuata su Linux + Apache. Nella sezione Permalinks del pannello di WordPress è infatti possibile configurare i parmalinks che genereranno un indirizzo simile a questo:
/index.php/archives/%year%/%monthnum%/%day%/%postname%
WordPress aggirerà il problema passando gli argomenti alla pagina e mostrando nell’url index.php.
Facendo in pò di ricerche ho trovato sul sito WordPress Codex la soluzione a questo problema e quindi la possibilità di configurare IIS per supportare il mod_rewrite. La soluzione è semplice se il server gira con II6 + framework .net 3.5 o con II7.
Semplicemente, nella root del sito dove è installato WordPress, va inserito un file web.config contenente il seguente codice:
<rewrite> <rules> <rule name="Main Rule" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:0}" /> </rule> </rules> </rewrite>
Entrando poi nel pannello sarà possibile togliere la chiamata al file index.php abilitando la struttura Custom del permalinks.