PDA

View Full Version : [apache] mod_rewrite che si incasina con i '/'


Duchamp
20-04-2012, 21:44
Buonasera a tutti,
ho una rewrite rule che mi sta uccidendo :) .

L'intento è di ottenere la trasformazione che segue:


www.miodominio.com/mele ---> prodotto.php?tipo=mele
www.miodominio.com/pere ---> prodotto.php?tipo=pere
..
www.miodominio.com/[x] ---> prodotto.php?tipo=[x]


La rule attuale è così:

RewriteRule ^/?([^/]+)$ prodotto.php?tipo=$1 [L]

che presenta due problemi:
1) mi include lo slash (poco male, lo strippo via php)
2) funziona anche per il base url (molto male)

In Italiano la regexp dice: "prendi tutti i caratteri escluso il '/' che vengono dopo un primo, eventuale '/'". A mio avviso questa condizione non dovrebbe avverarsi per

www.miodominio.com
www.miodominio.com/
, perchè dopo lo slash non esiste nessun carattere... o forse sì e io non me ne sto accorgendo?

Aggiungo che non ho nessun'altra regola nell' htaccess, se non il rewriteEngine on e FollowSymLinks.

Sapreste fornirmi qualche delucidazione in merito?

Duchamp
23-04-2012, 20:38
Ok, ho risolto per puro caso trasformando la rule così:


RewriteRule ^/?([^/^.]+)$ prodotto.php?tipo=$1 [L]


Notata la differenza? Ho escluso il punto '.' dal set di caratteri.
Non chiedetemi perchè. Sarà probabilmente una configurazione del mio server, perchè la regexp iniziale era valida.

Saluti