• User Newbie

    Rewrite con rewrite map dinamica

    Ciao,

    ho girato il forum in lungo e in largo ma non ho trovato informazioni su quello che sto cercando, cioè:

    immaginando di aver un db con le colonne "id" e "nome", in cui all'id "10" corrisponde il nome "pippo"

    riesco facilmente (grazie a quanto appreso sul forum) a riscrivere index.php?id=10 come

    nomi/10 o nomi/10.html

    ma non riesco in nessun modo a farla diventare

    nomi/pippo o nomi/pippo.html

    Qualche suggerimento? :arrabbiato:


  • Moderatore

    scusa, ma come passi l'id non puoi già passare anche il nome (tanto non lo vede nessuno)?

    index.php?id=10&nome=pippo

    a questo punto la puoi far diventare

    nomi/pippo
    nomi/10
    nomi/10/pippo
    nomi/pippo/10

    con e senza estensione .html o quel che vuoi


  • User Newbie

    @Criss said:

    scusa, ma come passi l'id non puoi già passare anche il nome (tanto non lo vede nessuno)?

    index.php?id=10&nome=pippo

    a questo punto la puoi far diventare

    nomi/pippo
    nomi/10
    nomi/10/pippo
    nomi/pippo/10

    con e senza estensione .html o quel che vuoi
    Ciao Criss,

    grazie per la risposta. E' più o meno quello che sto facendo ora, ma a parte che in questo modo non so come nascondere "10" tramite .htaccess, io preferirei tenere lo script più pulito possibile, anche perchè nell'esempio ho semplificato parecchio, ma immagina di dover chiamare oltre al nome altri 2 o 3 parametri, mi sembra veramente brutto, anche se non li vede nessuno.

    Preferirei creare una mappa dinamica, ma non so proprio come fare. :bho:


  • Super User

    ciao 🙂
    come ti ha spiegato Criss ti basta "stampare" nomi/pippo.html
    ti vai a leggere la variabile pippo e la passi a php tramite mod_rewrite

    a questo punto vai a fare una select nel database, selezionando il record con nome='pippo'
    (il tutto funziona bene quando nome è una chiave unica per ovvi motivi)

    ciao 😉


  • User Newbie

    Ciao Osvi,

    non è il modo in cui lo voglio fare: la mia query deve tassativamente rimane index.php?id=10; so che potrei benissimo passargli index.php?nome=pippo&id=10, ma mi sembra tecnicamente un sistema sbagliato passare una variabile che non mi serve.

    Vorrei fare come wordpress, che pure passando page_id=10 poi riesce a recuperare i campi necessari per modificare l'indirizzo.


  • Moderatore

    :bho: nn riesco a capire il problema nel passare le variabili da riscrivere. Puoi fare in un altro modo e cioè passi da un'ulteriore pagina nomi2.php dove ricavi tutte le variabili ch eti servono e le riscrivi, ma mi sembra una perdita di tempo e risorse. Altre strade non ne vedo sinceramente :mmm:
    ciao 🙂


  • User Newbie

    Criss,

    se domani devo lavorare sull'applicazione, deve essere più pulita possibile. In un sistema complesso trovo molto discutibile avere un sistema che passa direttamente 4 o 5 variabili "solo" per poter riscrivere l'url con data, famiglia e dettaglio.

    Per conto mio il rewrite è una bella cosa, ma non deve sporcare il sorgente delle pagine.

    Ho ottenuto il risultato attraverso una funzione attivabile e disattivabile dall'admin, contenuta in un file esterno che modifica un record del db, in modo che riscriva a richiesta l'indirizzo, che però nel codice originale rimane, come deve, index.php?id=x, senza altre variabili inutili.

    Il rewrite lavora solo sull'url riscritto dalla funzione, quindi l'url originale continua a funzionare. A quanto ho capito questo è il modo in cui funziona anche WP.

    Grazie comunque per le tue risposte, alla prossima.