• User Newbie

    Redirect 301 selettivo

    Ciao a tutti.

    Sto passando il sito da una struttura a frame ad una a CSS.
    Come ben capirete in chiave SEO è un bel problema, perchè la metà delle pagine che sono già indicizzate dai motori o linkate da altri siti sono i body dei vari frameset (cioè le pagine interne dei frame). Leggendo il forum ho già imparato tantissimo e sono giunto alla conclusione di realizzare un redirect 301.

    Chiaramente nel mio caso non sto spostando un sito da un dominio all'altro, quindi è una problematica un pò diversa da quella che si trova comunemente in giro; quello che voglio fare è reindirizzare tutte le vecchie pagine body sulle nuove pagine che ora sono realizzate con i CSS.

    Tutte le pagine body hanno sempre la stessa nomenclatura ed iniziano per "x_", quindi se la pagina principale (quella col frameset) è "pagina.html", il suo body ha la forma "x_pagina.html"

    Ora voglio cancellare man mano tutte le pagine body che iniziano per "x_" e redirigerle via htaccess sulla nuova pagina in css, che ha conservato il nome della pagina frameset, ossia "pagina.html"

    x_a.html -> a.html
    x_b.html -> b.html
    x_c.html -> c.html

    Il mio problema (e da questa domanda capite pure come sono ancora limitate le mie conoscenze di htaccess e regex) e che non riesco a creare l'istruzione htaccess.

    Quello che non mi è chiaro è se è possibile fare una "redirect selettivo" almeno come lo intendo io:
    poichè farò la modifica al sito gradualmente, non vorrei una regola che mi indirizzasse immediatamente tutte le pagine "x_pagina.html" a "pagina.html", ma solo quelle che ho tolto. In pratica la regola non deve valere per tutte le pagine, ma sono per quelle che l'agent non trova.

    Ho già fatto vari tentativi, ma senza grandi successi, anzi nessuno. C'e' qualcuno che mi può aiutare a creare la regex per il file htaccess o indicarmi una via?

    Grazie e mi auguro di aver descritto con chiarezza il problema.


  • Community Manager

    Ciao Gingo,

    ti sposto nella sezione dedicata 😉


  • User Newbie

    Ti ringrazio, in verità non sapevo dove postare (anzi, non avevo visto la sezione 🙂 ).

    Comunque in questi giorni mi sono studiato un pò il mod_rewrite sul sito di Apache e spulciato qualche altro sito in giro per il web ed ho trovato la soluzione.

    La posto qui, magari potrà tornare utile in futuro a qualcun altro:


    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(([^/]+/)*)x_([^.]+).html$ $1$3.html [R=301,L]

    In fondo non era difficile, piuttosto ero io che conoscevo poco il mod_rewrite.