Grazie al Web Sever Apache abbiamo la possibilità
di intervenire sulla sintassi delle URL per modificarle. In questo articolo vedremo come agire sull'estensione di un file
".php" in modo da trasformala in ".html".
A questo scopo potrebbe dover essere necessario abilitare il modulo
di Apache che presiede alla "riscrittura" delle URL noto come: mod_rewrite; per fare ciò dovremo editare
il file di configurazione di Apache "httpd.conf" ed intervenire sulle due voci specifiche riferite a questo
modulo.
La prima voce è la seguente:
LoadModule rewrite_module modules/mod_rewrite.so
La
seconda è
AddModule mod_rewrite.c
A volte queste due istruzioni sono entrambe "commentate" dal
simbolo del cancelletto "#" e quindi non abilitate di default; in questo sarà sufficiente eliminare entrambi i "#" e
salvare le modifiche apportate ad "httpd.conf" per poter utilizzare il mod_rewrite.
Una volta abilitato
il modulo per il "rewriting" dovremo inserire un file ".htaccess" nella directory in cui si trova il documento di cui
vogliamo modificare l'estensione. Un ".htaccess" non è altro che un file in cui vengono inserite delle direttive che
il Web server dovrà rispettare.
Se per esempio volessimo trasformare in ".html" l'estensione di un file
chiamato "pagina.php" interno ad una directory nominata "site", dovremmo inserire all'interno di "site" un file che
chiameremo ".htaccess" (senza ulteriori specifiche) contenente le seguenti istruzioni:
RewriteEngine on
RewriteRule ^pagina.php$ pagina.html [L]
La direttiva RewriteEngine settata su "on" permetterà
il "rewriting" all'interno della directory in cui l'".htaccess" è stato inserito. RewriteRule, invece,
indicherà quali saranno le pagine interessate al "rewriting" e il modo in cui esso avverrà; nel nostro caso
RewriteRule trasformerà l'estensione ".php" del file "pagina" in ".html" senza intervenire su altri
documenti.
Tenete conto che "pagina" continuerà ad essere in tutto è per tutto un file PHP,
ciò accade perché il "rewriting" non agisce sui contenuti di un file ma esclusivamente sulle URL che portano ad
esso; quindi, sempre nel nostro caso, "http://www.nome_sito.it/site/pagina.html" equivarrà a
"http://www.nome_sito.it/site/pagina.php".
Il "rewriting", viene spesso utilizzato per rendere pił
semplice l'indicizzazione delle pagine Web da parte dei motori di ricerca, infatti, i loro "crawler" sono notoriamente poco
attratti da URL complesse soprattutto se contenenti variabili.
Se per esempio volessimo trasformare l'URL:
"http://www.nome_sito.it/index.php?page=news" nella pił semplice: "http://www.nome_sito.it/news.html", potremo scrivere il
nostro ".htaccess" in questo modo:
RewriteEngine on
RewriteRule
^http://www.nome_sito.it/index.php?page=news$
http://www.nome_sito.it/news.html [L]
|