• User Newbie

    mod rewrite -> escludere caratteri

    Ciao a tutti!
    Volevo chiedere un parere a voi che ci capite (io ho iniziato a vedere le regex da pochissimo 😞 )

    Avrei un indirizzo di questo tipo
    /locali/roma/3-i_butteri.html
    al quale applico la regola
    RewriteRule ^locali/(.)/([0-9]+)-(.*).html$ locale.php?paese=$1&locale=$2&rew=$3 *

    che funziona bene. Ora sto inserendo un sistema di commenti e quindi devo mettere più pagine (limito il numero di commenti per pagina).
    Da ciò l'indirizzo diventa
    /locali/roma/3-i_butteri-2.html
    /locali/roma/3-i_butteri-3.html
    ...
    e ho modificato la regola cosi
    RewriteRule ^locali/(.)/([0-9]+)-(.)-([0-9]{4}).html$ locale.php?paese=$1&locale=$2&rew=$3&page=$4 *
    In pratica ho aggiunto -([0-9]{4}) per dirgli di prendere un valore da 0 a 9999 e l'ho messo come variabile per $page. Il problema è che la precedente (.
    ) mi prende tutto! Quindi ho su $rew i_butteri-3, che non va bene!
    Come posso modificare la regola per dirgli tutto prima di -? Sono sicuro di questo perchè $rew ha solo _ come divisori delle parole!
    Ho provato sostituendo (.*) con ([^-]), ma niente, e non ho idea di come muovermi!

    Mi sapete dare una mano?
    Grazie mille!


  • Super User

    Ciao,

    quel {4} non mi convince per niente.
    Sei sicuro che la regola sia corretta?


  • User Attivo

    Se il problema è (.*) che prende tutto prova a sostituirlo con ([^/]+) cioè con "qualsiasi carattere che non sia uno slash" 😉