[Php-it] Apache

Stefano Petroni stefano at telematica.it
Wed Jun 21 14:21:26 CEST 2006


From: "Stefano Petroni" <stefano at telematica.it>

> Oggi mi disocculto per sapere se posso fare una domanda su Apache su
> questa lista o se sapete indicarmi una ML in italiano che tratti
> questo web server.

Salve, mi rispondo da solo perche' poi ho risolto ma la risposta puo' esser
utile anche ad altri.

Il problema riguardava mod_rewrite ed il suo utilizzo.

In pratica volevo fare in modo di avere una sezione del sito che funzionasse
un po' come wikipedia ovvero immettendo nel browser un URL del tipo
www.nomedominio.it/news/ volevo che fosse chiamato lo script wiki.php senza
cambiare la URL sul browser dell'utente. Volevo anche che qualsiasi cosa
scrivessi dopo /news/ finisse tutto allo stesso script sempre senza cambiare
la URL visualizzata sul browser dell'utente.

La soluzione era mod_rewrite e le RegEx. Temevo di piu' queste ultime
rispetto a mod_rewrite ma non avevo fatto i conti con la documentazione
ufficiale di mod_rewrite che dice ben poco.

Superate a pie' pari le RegEx (un esempio vale piu' di mille spiegazioni) ho
dovuto affrontare lo scoglio mod_rewrite ma ho trovato questo simpatico ed
utile specchietto riassuntivo:
http://www.ilovejackdaniels.com/mod_rewrite_cheat_sheet.pdf
e nel giro di due o tre tentativi ho risolto.

Vi segnalo inolte sempre sullo stesso sito http://www.ilovejackdaniels.com/
altri utili specchietti su CSS, PHP, MySQL, ASP, VBscript, JavaScript ed
altri. Utili per chi e' alle prime armi con un dato argomento ma utili anche
come promemoria per chi e' una cintura nera.

Per chi e' interessato, ecco quanto ho scritto nel file .htaccess che e'
nella root del sito:

RewriteEngine on
RewriteRule ^news$           /news/         [R=301,NC]
RewriteRule ^news/_img/?$    /news/         [R=301,NC]
RewriteRule ^news/_img/(.*)$ /_img/_news/$1 [L,NC]
RewriteRule ^news/(.*)$      /wiki.php      [L,NC]

- La prima riga attiva il motore Rewrite.
- La seconda riga da un redirect al browser nel caso l'utente abbia omesso
la barra finale dopo news (ad esempio www.nomedominio.it/news).
- La terza riga invia un redirect al browser nel caso l'utente tenti di
accedere alla cartella (virtuale) delle immagini senza specificare un nome
di file (es: www.nomedominio.it/news/_img oppure www.nomedominio.it/_img/).
Nei due casi precedenti la URL cambia anche nel browser e diventa
www.nomedominio.it/news/.
- La quarta riga crea una cartella (virtuale) per le immagini. Se viene
passata una URL corretta, completa di nomefile (es:
www.nomedominio.it/news/_img/ciccio.gif) viene servito il file contenuto in
/_img/_news/ (nell'esempio precedente
www.nomedominio.it/_img/_news/ciccio.gif) senza cambiare la URL del browser.
- La quinta riga (quella che cercavo all'inizio!) lancia wiki.php nel caso
l'utente chiami la URL www.nomedominio.it/news/ seguito o meno da un nome
file o da una sotto directory. Ovviamente poi sono cavoli di wiki.php capire
quello che segue /news/ e rispondere nel modo piu' opportuno. anche in
questo caso la URL nel browser non cambia.


Tutto cio' funziona con Apache su FreeBSD, sul sistema di test windows non
c'e' verso di fargli leggere .htaccess ma questo e' un problema minore per
il momento e ne posso fare anche a meno. Cio' non toglie che se avete un
suggerimento... :-)


Spero che questa sbrodolata possa essere utile a qualcun'altro.


---------------------------------------------
   Stefano Petroni - stefano at telematica.it

 Teleborsa S.p.A. - http://www.teleborsa.it/
  Agenzia stampa economica fondata nel 1961

   via di Trasone, 52 - 00199 Roma - Italy
Voice (+39).06.865021 - Fax (+39).06.86328156
---------------------------------------------
      Ci credi nell'amore a prima vista
      o devo ripassarti davanti?



More information about the Php-it mailing list