Ciao a tutti,
dopo i due articoli scritti su mod_rewrite di apache vorrei trattare di come molti applicativi, tra cui wordpress (il sistema di blogging che utilizzo per questo blog) gestiscono il mod_rewriting in modo più stretto tra apache e php.

Fondamentalmente anzichè applicare regole specifiche come quelle trattate nei precedenti articoli es:
RewriteEngine On
….
….
RewriteRule ^
([^/]+)/servizi/service.php?lang=$1 [L]

Utilizzano queste uniche regole:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php

In pratica le regole che Wordpress fa inserire nel file .htaccess provvedono a fare un check se il file o la directory richiesta esiste, in tal caso apache richiede la risorsa reale e presente fisicamente, altrimenti redireziona alla index.php di wordpress.

Questa pagina di fatto si occupa, in base a come è settato l’applicativo da admin (c’è un wizard molto comodo che vi allego, forse un po’ piccola… :-D )

Permalink

In pratica si imposta come Wordpress deve trattare e gestire gli URL. A quel punto è l’applicativo stesso che si occupa di fare il parsing della variabile $_SERVER['REQUEST_URI'] (almeno credo che usino questa, al massimo ne utilizzano una simile :-D ) e di generare on the fly i link corretti.

Questo tipo di gestione da realizzare è molto più flessibile ma anche più complicata in quanto richiede un notevole sforzo di parsing degli indirizzi. Soluzione MOLTO valida per applicativi completi e liberamente scaricabili come Wordpress ma poco utile per siti web custom.

Ciao a tutti,
Max
info[AT]massimo-caselli[DOT]com