PDA

View Full Version : PHP rilevare id articolo da indirizzo url-friendly


zUmBo!
13-08-2007, 17:05
Ciao a tutti!
finalmente sono riuscito a far funzionare l'URL rewriting sul mio sito.

Ovviamente risolto un problema se ne pone subito un altro:

l'indirizzo dinamico di prima era

www.nomedelsito.it/index.php?id_articolo=96

ora è

www.nomedelsito.it/96/un-titolo-qualsiasi-che-non-processo-neanche

fin'ora molti degli script contenuti nel sito lavorano con la variabile
$_GET[id_articolo] che ovviamente ora non esiste più.

come faccio a definire che /96/ in realtà è $id=96???

vi prego accorrete in taaaaantiiiiii :mc:

andbin
13-08-2007, 17:41
Ciao a tutti!
fin'ora molti degli script contenuti nel sito lavorano con la variabile
$_GET[id_articolo] che ovviamente ora non esiste più.

come faccio a definire che /96/ in realtà è $id=96???Ma hai scritto una regola di rewrite o no??

Basta mettere:
RewriteEngine on
RewriteBase /
RewriteRule ^([0-9]+)/ /articolo.php?id_articolo=$1

e lo script articolo.php riceverà il ID in $_GET['id_articolo']

zUmBo!
13-08-2007, 17:46
Ma hai scritto una regola di rewrite o no??

Basta mettere:
RewriteEngine on
RewriteBase /
RewriteRule ^([0-9]+)/ /articolo.php?id_articolo=$1

e lo script articolo.php riceverà il ID in $_GET['id_articolo']

ho scritto questo preso da WORDPRESS (l'unico che non mi dava errori) e modificato


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]*)/(.*)$ index.php?id_articolo=$2
</IfModule>

il problema è che ora mi fa il rewrite ma la variabile $_GET[id_articolo] si va a far friggere....infatti il mio script mi dà errore.:muro:

grazie ANDBIN hai sempre la risposta pronta :D

andbin
13-08-2007, 17:58
il problema è che ora mi fa il rewrite ma la variabile $_GET[id_articolo] si va a far friggere....infatti il mio script mi dà errore.:muro: Però passi $2, che contiene il titolo che nemmeno processi, come hai detto all'inizio. Passa $1.

Io infatti l'ho scritta come ^([0-9]+)/ cioè interessa solo che inizi con dei digit che terminano con un /. Cosa c'è dopo appunto non importa (se è come dici).

zUmBo!
13-08-2007, 18:07
Però passi $2, che contiene il titolo che nemmeno processi, come hai detto all'inizio. Passa $1.

Io infatti l'ho scritta come ^([0-9]+)/ cioè interessa solo che inizi con dei digit che terminano con un /. Cosa c'è dopo appunto non importa (se è come dici).

:D Ma grazie ANDBIN, sai i finti-programmatori come me spesso si perdono in un bicchier d'acqua, tutto funzionante ;)