Per la riscrittura delle URL, e la creazione dei permalink, abbiamo a disposizione il Mod_Rewrite del Web server Apache, ma non sempre gli hosting forniscono il supporto per questo servizio e spesso ci troviamo a lavorare in spazi Web basati su Windows e IIS che escludono questa possibilità.
WordPress è stato concepito in modo da cercare di aggirare questo problema utilizzando una tecnica che consiste nel passare il nome di un file all'inizio di un permalink, in questo modo l'applicazione cercherà comunque di trasmettere gli argomenti alla pagina anche senza il supporto per il Mod_Rewrite.
Se abbiamo deciso di utilizzare questa funzione dobbiamo tenere presente che il nome della pagina all'interno dell'URL è un argomento fondamentale per la tracciabilità di un'URL; se per esempio volessimo utilizzare un indirizzo come il seguente
/index.php/archives/anno/mese/giorno/nome_articolo/
Dovremo impostare i relativi tag in modo che seguano il nome della pagina:
/index.php/archives/%year%/%monthnum%/%day%/%postname%/
I permalink strutturati in questo modo sono chiamati "PATH-INFO Permalink" dove appunto l'URL restituisce l'informazione relativa al percorso delle pagina di destinazione.
Questa soluzione non è sempre praticabile, in alcune piattaforme, come per esempio quelle basate su IIS 6, l'opzione non sarà immediatamente disponibile ma richiederà la possibilità di accedere al file di configurazione di PHP ("php.ini"); all'interno di esso bisognerà digitare due linee contenenti le seguenti istruzioni:
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
Permalink e pagine di errore 404
Un'altra soluzione per l'utilizzo dei Permalink è quella di sfruttare le pagine di errore "404" personalizzate per redirigere le chiamate nel giusto percorso. Un esempio potrebbe essere quello di includere nella pagina di errore il seguente codice:
<?php
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>
Per renderlo utilizzabile si dovranno seguire i seguenti semplici passaggi:
- salvare il codice in un file denominato "wp-404-handler.php" nella directory base di WordPress;
- configurare le pagine di errore 404 del proprio sito in modo che puntino sul file "wp-404-handler.php";
- recarsi nell'amministrazione del Blog engine (percorso "Opzioni" >> "Permalink") e indicare nel modulo per i "Campi personalizzati" la seguente struttura per i links:
/%year%/%monthnum%/%day%/%postname%/
In questo modo sarà possibile sfruttare le variabili d'ambiente del Web server "$_SERVER['QUERY_STRING']
" e "$_SERVER['REQUEST_URI']
" per ottenere la variabile "$_SERVER['PATH_INFO']
" con cui redirigere le chiamate alle pagine nel giusto percorso.