[Tecnica] url rewriting

Martino di Filippo puntodifuga a gmail.com
Mar 15 Ago 2006 22:41:06 BST


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)

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

(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 [^/]+.)

Spero che sia tutto chiaro!

Martino

On 8/15/06, Massimo Sandolo <bastilani a email.it> wrote:
>
>
> Il giorno 15/ago/06, alle ore 21:00, Martino di Filippo ha scritto:
>
> > Potresti inviare il codice del rewrite in modo da controllare che
> > non ci siano errori?
> > A quanto ne so, se l'estensione è caricata in modo corretto non
> > dovrebbero esserci altre opzioni da modificare.
>
> eh .. è quello che pensavo anche io ... cmq per il rewrite in
> httpd.conf di apache ho queste righe:
>
> LoadModule rewrite_module     libexec/httpd/mod_rewrite.so
> AddModule mod_rewrite.c
>
> e poi queste altre:
> <IfModule mod_rewrite.c>
>      RewriteEngine On
>      RewriteCond %{REQUEST_METHOD} ^TRACE
>      RewriteRule .* - [F]
> </IfModule>
> che cmq se commento non mi cambiano niente.
>
> nelle conf dell'user:
> <Directory "/Users/massimo/Sites/">
>      Options All
>      AllowOverride All
>      Order allow,deny
>      Allow from all
> </Directory>
>
> la regola di rewrite scritta nell'htaccess messo nella directory
> prova_rewrite:
> RewriteEngine On
> RewriteRule ^test/([^/]+).html http://localhost/~massimo/
> prova_rewrite/test.php?id=$1 [L]
>
> Dimenticavo .. lavoro in locale su un osx e nn linux .. ma non credo
> incida sensibilmete sul problema (spero).. apache è la versione 1.33
>
> byez
> max
> _______________________________________________
> Tecnica mailing list
> Tecnica a liste.siena.linux.it
> http://liste.siena.linux.it/cgi-bin/mailman/listinfo/tecnica
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://liste.siena.linux.it/pipermail/tecnica/attachments/20060815/52cebe38/attachment.htm


Maggiori informazioni sulla lista Tecnica