• User Attivo

    mod_rewrite per news.php?id=333

    ragazzi

    ho bisogno di un aiuto per creare un mod rewrite.
    semplicemente vorrei che la pagina news.php?= si riscritta con il tittolo della news e gli spazi sia sostituiti come trattini (-) e inserire anche l'id (nel caso di articoli con lo stesso titolo).

    quindi una cosa tipo /macchina-fotografica-canon-121212.html
    io non so proprio da dove partire.

    ps. sono su aruba (linux)


  • User Attivo

    Ciao,
    dovresti creare un codice (con php o altri linguaggi che usi) che ti modifichi gli URL in quello che vuoi tu, per modifica intendo gli url che vengono stampati nell'html, e che quindi vengono poi cliccati dagli utenti.

    Dopodichè creai le regole di rewrite per fare in modo che i nuovi link /macchina-fotografica-canon-121212.html
    vengano reindirizzati ai vecchi news.php?id=121212

    A che punto sei di questi 2 passi? 😄


  • User Attivo

    praticamente a 0.

    è la primissima volta che mi cimento nel mod. e non soda dove iniziare.


  • User Attivo

    Bene, crea una funzione (suppongo utilizzi php) che ti crei gli url dinamicamente (questa è una via, magari ne preferisci un altra).
    ad esempio, la funzione prende come parametri l'id della news.
    La funzione fa la query al database, si prende il nome della news, tratti il nome in modo che sia url compatibile(togliendo i caratteri particolari) e sputi fuori l'url.
    Fatto questo supponiamo che tu abbia gli url craeti del tipo:
    /nuova-macchina-fotografica-esempio-nw123.html

    (notare il "nw" messo per riconoscere poi l'id, si può evitare, si possono utilizzare tecniche diverse, dipende dalle esigenze)

    il rewrite sarà una cosa del tipo:

    
    RewriteCond %{REQUEST_URI}              \/.*nw(\d).html$
    RewriteRule ^.*nw(\d).html$ news.php?id=$1 [QSA,L]
    
    

    😉


  • User Attivo

    ok grazie.
    una cosa:
    la pagina new.php?id= estre i dati dal daatbase tra cui anche il titolo.

    come faccio a dire al mod_ che deve reiscrivere la url?


  • User Attivo

    attenzione, sei tu che riscrivi l'url.
    Il mod_rewrite lo interpreta, tramite regole(regexp) nell'htacces, ne estrae eventuali parametri e li passa al "vecchio" url, se cosi si può dire 😉

    Esempio: tu fai in modo che l'utente clicchi sul nuovo url. E' poi compito del rewrite interpretare l'url e far vedere all'utente cio che avrebbe visto col vecchio url.
    (spero di non aver incasinato le idee...nonsono un genio nelle spiegazioni :D)
    Ciao