• User

    Gestione permalink per sito

    Salve, è da qualche giorno che mi interesso dell'argomento, e mi stavo chiedendo appunto se fosse corretto il loro utilizzo nel modo seguente

    miosito.com/news

    miosito.com/utente/pippo

    miosito.com/discussione/salve-sono-pippo-163

    Nella pagina .php utilizzando $_SERVER['REQUEST_URI'] esamino l'url e di conseguenza agisco in un modo o in un altro
    Esempio nel primo caso (news) saranno inserite le ultime notizie o quelle più rilevanti
    Nel secondo caso utente lo associo alla tabella del db (non obbligatoriamente con lo stesso nome) contenente gli utenti registrati e di conseguenza pippo è il nome univoco

    Nell'ultimo caso invece prendo in considerazione il numero 163 che sarà un id

    Ho notato, che alcuni siti utilizzano questo metodo per la gestione dei permalinks, se non erro wordpress grosso modo utilizza $_SERVER['REQUEST_URI']

    Leggendo un po in giro per il web, ho potuto notare che altri utilizzano un approccio differente cioè impostando una regola nell' htaccess differente da quella utilizzata da wordpress, e gestiscono l'url con il $_GET[]

    Cosa ne pensate? grazie


  • Moderatore

    Io penso dio aver capito quello che intendi...spero
    Personalmente in un mio progetto che esporrò a breve ho replicato lo stile dei permalink di wordpress, con tanto di stesse regole htaccess e ti dico cosa ho imparato:

    • Le regole htaccess di wordpress, servono esclusivamente per reindirizzare tutto ciò che non è all'interno del host ( spazio ) dando un 404

    Ora, l'approccio di wordpress è questo;
    nomesito.it/?p=numero (post)
    nomesito.it/?page=numero (page )
    nomesito.it/?attachment=numero (attachment )
    etc

    Analizzando tutto in profondità, i parametri in get, sono tutti i post_type della tabella wp_posts 🙂
    Questo cosa ci dice?
    Che cmq vada la tabella contenente i dati è sempre la stessa e dato che nel momento in cui noi inseriamo un nuovo post, una nuova pagina o media o categoria etc, la prima cosa che wordpress controlla è se esiste già una url uguale, se esiste inserisce un numero per differenziarla.
    Quindi nel momento in cui utilizziamo i permalink, la struttura sa già che $_SERVER['REQUEST_URI'] sarà sempre una url della tabella wp_posts e sarà sempre univoca e ti permetterà di evitare l'inserimento di numeri ( id ).

    Ora, da qui a realizzare una cosa simile è piuttosto complicata, soprattutto se hai davanti un sistema già fatto.

    Altri cms utilizzano appunto il mod_rewrite perchè si appoggiano ad una moltitudine di tabelle.
    La vera forza di wordpress è proprio questa. Qualsiasi cosa che non sia un dato integrativo della piattaforma viene scritta nella tabella wp_posts.


  • User

    Innanzitutto grazie per la risposta e la condivisione della tua esperienza personale, avevo più o meno capito che wp funzionasse in questo modo. Io stavo pensando appunto di utilizzare le stesse regole di rewrite (grazie alle quali non avremo un errore 404) nel file .htaccess per reindirizzare l'url richiesto dal browser a una specifica pagina php che avrà il compito di analizzarlo.

    Un esempio di quello che vorrei realizzare penso sia questa stessa pagina, l'url è formato da

    forum: cioè una cartella fisica presente sul server,

    php-mysql: che è associato a un campo di una tabella nel db (chiamiamolo sub-forum),

    227657: un campo di un altra tabella (id della discussione in sostanza),

    -gestione-permalink-per-sito.html (titolo della discussione)

    Stavo quindi pensando di utilizzare quella funzione di php e strutturare le pagine in base alla richiesta dell'url in sostanza se la pagina/categoria, è presente nel database o comunque è predisposta per esistere restituirà una determinata pagina, altrimenti richiamerà la pagina 404.
    Quello che mi chiedo è se può essere un modo decente per gestire le mie pagine :mmm:


  • Moderatore

    È tutto gestibile con il mod rewrite, poi che sia giusto o no non saprei. Io per mia esperienza personale ora che creato una piattaforma che posso modellare come voglio e mi sono levato le beghe del mod rewrite non cambio piu.
    anche perche compilare un htaccess di un cms con svariate funzioni, puo esser davvero complesso. Ci sono passato piu e piu volte