[Tecnica] url rewriting

Massimo Sandolo bastilani a email.it
Mer 16 Ago 2006 09:34:09 BST


Il giorno 15/ago/06, alle ore 23:41, Martino di Filippo ha scritto:

> Ho capito dove sta il problema.
> Inoltre, c'è almeno un errore, seppur triviale, oltre al fatto che  
> non capisco bene l'uso di [^/] (perchè mai usare "un carattere  
> diverso da /" quando l'id non è terminato da "/"? visto che l'url è  
> nella forma test/ID.html, sarebbe più corretto usare [^\.]+\.html)

questo tipo di regola l'avevo presa da un tutorial su un forum, che  
era data come prova per verificare il funzionamento del rewrite.. non  
mi sono soffermato troppo sulla correttezza dell'espressione :P

> Comunque, venendo al nocciolo della questione, il browser mostra il  
> nuovo indirizzo perchè stai dando un url completo di http:// come  
> rewrite, dovresti usare un url relativo alla directory corrente:
>
> RewriteRule test/(\d+)\.html text.php?id$1

ok, in effetti tutti fanno riferimento a questo tipo di regole (senza  
url completo), però in realtà se non specifico l'url completo lui mi  
da un 404.
Cmq con la tua regola chiedendo la pagina
http://localhost/~massimo/prova_rewrite/test/mondo.html
ottengo:
Not Found
The requested URL /~massimo/prova_rewrite/test/mondo.html was not  
found on this server.


invece con la regola precedente:
RewriteRule test/([^/]+).html test.php?id=$1 [L]

richiamando: http://localhost/~massimo/prova_rewrite/test/mondo.html
mi restituisce:
Not Found
The requested URL /Users/massimo/Sites/prova_rewrite/test.php was not  
found on this server.

nel primo caso non riscrive, nel secondo invece il path sarebbe  
corretto perchè il file test.php è proprio in quella directory, solo  
che lo traduce in path e non in url

> (Nota che il . prima di html, se non preceduto da un backslash,  
> indica "un carattere qualsiasi" e non un punto effettivo.  
> L'espressione funziona comunque perchè un punto è "un carattere  
> qualsiasi", ma tanto vale essere precisi.
> In più, visto che gli id sono numerici, puoi usare \d+ (che indica  
> una serie di cifre) al posto di [^/]+.)

capito!

> Spero che sia tutto chiaro!
> Martino

byez
max
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://liste.siena.linux.it/pipermail/tecnica/attachments/20060816/57b6c48e/attachment.htm


Maggiori informazioni sulla lista Tecnica