• Super User

    mod rewrite - redirect 301 [pillola]

    Se il vostro sito è costruito utilizzando la riscrittura degli indirizzi e nell'indirizzo avete piazzato l'id dell'articolo che volete pubblicare questa pillolina può esservi utile.

    Un mio sito ha l'url delle pagine degli articoli costruite in questo modo:

    <url base del sito>/<nome della sezione>/<id dell'articolo>_<titolo dell'articolo>.html

    il titolo dell'articolo è il risultato di un'elaborazione che elimina o converte determinati caratteri.

    se voglio spostare un articolo da una sezione all'altra cambia l'url quindi indicizzazione ed eventuali bl se ne vanno a remengo.

    se voglio cambiare il titolo o cambio l'algoritmo che genera il titolo dell'articolo indicizzazione ed eventuali bl se ne vanno a remengo.

    la soluzione che ho adottato è un mix tra url rewrite e redirect 301.

    prendiamo una regola classica:

    
    RewriteRule ^(.*)/([0-9]+)_(.*).htm$ articolo.php?id=$2
    
    

    questa regola mi consente di generare url dinamiche come descritto sopra e passare alla pagina articolo.php l'id dell'articolo da visualizzare.

    tutto quello che è contenuto nel parametro $1 e nel parametro $3 viene perso perchè apparentemente non interessa.

    ora modifichiamo la regola:

    
    RewriteRule ^(.*)/([0-9]+)_(.*).htm$ articolo.php?s=$1&id=$2&a=$3
    
    

    così modificata la regola mi consente di avere nel parametro s il nome della sezione e nel parametro a il nome dell'articolo.

    a questo punto nella pagina, prima di fare qualsiasi cosa, estraggo l'id dal parametro id, rieseguo gli algoritmi necessari per generare il nome della sezione che dovrebbe essere presente nell'url, e per generare il nome dell'articolo che dovrebbe essere presente nell'url.
    Confronto il nome della sezione e il nome dell'articolo con quelli recuperati dall'url.
    se tutto coincide bene se c'è qualcosa di diverso faccio un redirect 301 (move permanently) verso l'url generata in modo corretto.

    con questo accrocchio ottengo:

    1. se qualche backlink spontaneo ha l'url errata ma fortunatamente è corretto l'id dell'articolo posso recuperarlo.

    2. se decido di cambiare sezione (e quindi cambia l'url) viene fatto un 301 automaticamente verso l'url corretto recuperando gli utenti e i backlink

    3. se cambio l'algoritmo che genera le url dinamiche tutto si sistema da solo.

    un accrocchio simile può essere usato su qualsiasi genere di siti ma ha particolare rilevanza su siti da diverse centinaia o migliaia di pagine dove quindi tutto viene generato da un algoritmo (che come tale è sempre perfettibile).

    spero di essere riuscito a spiegarmi.

    attendo considerazioni, critiche, suggerimenti 😄

    Tymba


  • Community Manager

    Bene Tymba, aspetto anche io di sapere gli altri cosa dicono 🙂

    Intanto, appena avremo le risorse in rilievo, questa sarà segnalata 😉

    Grazie 🙂