Volete nascondere ai vostri visitatori la tecnologia usata per creare le vostre pagine web? Oppure meglio ancora vorreste che i nomi delle vostre pagine siano diversi da www.enricoiacono.it/index.php?id=1&type=news? Beh se state cercando questo, non dovete far altro che modificare alcuni settaggi del vostro Server Apache, in particolare il modulo Apache mod_rewrite.
Prima di cominciare dovreste dare uno sguardo alle espressioni regolari.
Di solito questo modulo è gia attivo sulla maggior parte dei server online, se vogliamo testare il mod rewrite di Apache in locale:
- per Apache2 a2enmod rewrite come root
- per Apache1 è necessario decommentare la linea LoadModule mod_rewrite nel file di configurazione
Apache di default ignora i file .htaccess (il file che servirà al nostro scopo) - per farglieli leggere devi modificare la direttiva AllowOverride all'interno del file di configurazione. Ricordiamoci di riavviare il webserver e di lanciare un phpinfo(), troveremo sotto Loaded Modules mod_rewrite.
Pronti via!
Aprite notepad e scrivete queste 2 regole:
Inserendo queste due righe in domain.tld/.htaccess, quando un utente visita domain.tld/index.html il webserver invia la pagina domain.tld/index.php. L'utente non si accorge di niente.
Se fooindex.php non esiste, l'utente vede "404 fooindex.php", anche se ha richiesto index.html, index.html può anche non esistere: il webserver invierà al client direttamente il file php senza neppure curarsi del file html.
Salvate il file con nome ".htaccess" e mettetelo sul vostro server dove sarà presente index.php, se richiamerete index.html, vi apparirà come per magia index.php, se non funziona guardate se avete configurato bene Apache.
Guida al mod rewrite di apcahe 2 parte