In questa pagina descriveremo in modo semplice alcune regole base da seguire quando decidete di cambiare la struttura delle URL del vostro sito per evitare di perdere il valore che il motore di ricerca aveva attribuito alle vecchie. Per essere precisi con il 301 si preserva quasi tutta la forza delle vecchie URL perché come detto dagli ingegneri di Google un minimo di Juice può andar perduto, ma una minima parte e in ogni caso il seguente è il metodo migliore in assoluto e quello consigliato.

Un possibile scenario è il seguente.

Avete appena ricreato alcune pagine del vostro sito. Le vecchie hanno un buon posizionamento sui motori di ricerca e non volete perderlo. Come potete fare per inoltrare il traffico delle vecchie pagine alle nuove senza perdere il vostro posizionamento?

Potete farlo con il Redirect 301.

Che cosa è un redirect 301 ?

Il redirect 301 è il miglior metodo che abbiamo per mantenere il ranking sui motori quando reindirizziamo una pagina del nostro sito.

Il codice “301″ viene infatti interpretato come “moved permanently”. Dopo il codice infatti va poi specificata la vecchia pagina seguita da uno spazio e poi la nuovo pagina.

Per implementarlo basta aggiungere questo codice all’interno del file .htaccess (oppure direttamente nel virtualhost).

Cosa è il file .htaccess ?

Quando un visitatore/spider richiede una pagina web, il web server controlla la presenza del file .htaccess.

Il file .htaccess contiene istruzioni specifiche per alcuni tipi di richieste, incluse sicurezza, redirect e gestione errori sempre che da direttive di configurazione di Apache vi venga dato il permesso di utilizzo del file per regolarne il comportamento.

Come implementare un redirect 301

  1. Per creare un file .htaccess aprite un qualsiasi editor di testo, create un nuovo file e salvatelo come .htaccess (senza estensioni).
    Nel caso di Linux potete ad esempio fare da linea di comando Vim .htaccess e poi una volta editato :wq.
    Nel caso di windows potreste avere problemi a salvare il file iniziando con il punto (.) quindi in questo caso chiamatelo htaccess.txt e poi una volta inviato via FTP sul server rinominatelo.
  2. Se avete già un file .htaccess sul vostro server, scaricatelo ed editatelo.
  3. Inserite il seguente codice nel vostro file .htaccess: redirect 301 /vecchia/vecchia.html http://www.tuodominio.com/nuovapagina.html
  4. Se il vostro file .htaccess contiene già delle righe di codice saltate una linea e scrivete l’istruzione lì senza cancellare quelle già presenti.
  5. Salvate il file .htaccess
  6. Inviate il file nella cartella root del vostro server.
  7. Testate il tutto scrivendo nel browser la vecchia pagina. Dovreste essere immediatamente inoltrati alla nuova.

Note: E’ importantissimo non aggiungere “http://www” alla prima parte dell’istruzione, ma mettere solamente il percorso a partire dal livello più alto del vostro sito.

Assicuratevi inoltre che ci sia lo spazio tra questi due elementi:

redirect 301 (l’istruzione che indica che la pagina è spostata per sempre)
/vecchia/vecchia.html (il percorso e nome del file da spostare)
http://www.tuodominio.com/nuovapagina.html (il nuovo percorso e nome del file)

Quando gli spider dei motori di ricerca passeranno in esame il tuo sito verranno reindirizzati alle nuove URL come hai stabilito con le regole inserite nel file .htaccess.

In realtà gli spider non leggono il file .htaccess, ma riconoscono la risposta dal server come valida, esattamente allo stesso modo del Browser e quindi risulta completamente trasparente sia agli occhi dell’utente che del motore.

Durante il successivo aggiornamento dei motori il vecchio file verrà eliminato e rimpiazzato con il nuovo. Il tempo di digestione del passaggio dal file vecchi al nuovo all’interno dell’indice di Google può variare. In realtà negli indici di Google la risorsa rimarrà per sempre da qualche parte ed è bene mantenere i redirect per sempre soprattutto in quei casi dove le vecchie URL sono linkate da siti esterni.
In questi casi è necessario mantenere i redirect per un tempo indeterminato.

Se vi accorgete che il vostro file .htaccess diventa troppo corposo e dunque potrebbe generare problemi di stabilità e di carico è buona pratica spostare le istruzioni di redirect all’interno del file VirtualHost (qualora vi fosse possibile farlo).

Per poter modificare il file di VirtualHost solitamente dovete avere accessi alla configurazione di Apache e quindi difficilmente vi sarà possibile se avete acquistato un hosting.

Il vantaggio di tenere tali direttive nel VirtualHost è molteplice perché limita anche la possibilità di cancellazione involontaria delle istruzioni che i Cms o alcuni plugin potrebbero fare.

Altri metodi per implementare il redirect 301

Reindirizzare tutti i file

Per reindirizzare tutti i file di un tuo dominio puoi usare queste regole nel tuo file .htaccess se sei su server linux/unix:

redirectMatch 301 ^(.*)$ http://www.dominio.com
redirectMatch permanent ^(.*)$ http://www.dominio.com

Puoi anche usare una regola delle seguenti nel .htaccess file:

redirect 301 /index.html http://www.dominio.com/index.html
redirect permanent /index.html http://www.dominio.com/index.html
redirectpermanent /index.html http://www.dominio.com/index.html

Questo farà il redirect della pagina “index.html” verso un altro dominio usando un redirect 301-Moved permanently.


Da sito vecchio a nuovo

Se hai bisogno di fare redirect da http://miosito.com a http://www.miosito.com e hai il mod_rewrite abilitato sul tuo server puoi inserire le seguenti regole nel tuo file .htaccess:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^miosito.com
RewriteRule ^(.*)$ http://www.miosito.com/$1 [R=permanent,L]

oppure questo:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^miosito.com$ [NC]
RewriteRule ^(.*)$ http://www.miosito.com/$1 [R=301,L]

Da pagine .HTML a .PHP

Se vuoi reindirizzare le tue pagine .html verso pagine .php e hai il mod_rewrite abilitato sul tuo server puoi inserire queste regole nel tuo file .htaccess:

RewriteEngine on
RewriteBase /
RewriteRule (.*).html$ /$1.php

Da .HTML a .SHTML con SSI

Se vuoi reindirizzare le tue pagine .html o .htm verso delle pagine .shtml perché usi Server Side Includes (SSI) aggiungi queste regole al tuo .htaccess:

AddType text/html .shtml
AddHandler server-parsed .shtml .html .htm
Options Indexes FollowSymLinks Includes
DirectoryIndex index.shtml index.html

Redirect con querystring

Ci sono dei casi in cui con le regole sopra non riuscirete a fare tutto e in particolare nei casi in cui volete redirezionare pagine che fanno uso di parametri come ad esempio http://www.miosito.com/paginetta.php?p=1.

In questa situazione potete ad esempio usare un codice come il seguente da personalizzare ovviamente caso per caso in base alle vostre specifiche esigenze.

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/paginetta\.php$
RewriteCond %{QUERY_STRING} ^p=([0-9]*)$
RewriteRule ^(.*)$ http://www.miosito.com/paginetta/%1 [R=301,L]

1932

  1. Ok, informazione interesante e completa, ci stò provando per tutto il sito su un nuovo dominio … ha funzionato per un giorno e adesso non mi reindirizza. Proverò con una delle altre stringhe e vi tengo aggiornati su quella che funziona meglio

  2. Come ha funzionato ed ora non funziona più ?
    Questo è un po’ strano.

  3. Ti ringrazio tantissimo, il tuo how to mi ha aiutato a risolvere un bel problema.
    Grazie mille!

  4. Sono davvero felice !!!

  5. Ma l’immagine del header del tuo blog, non sarebbe stato più bello
    {
    return ($nome==’andrea’ && $cognome==’pernici’);
    }
    AHAHAH
    Ciao.

  6. Ciao Andrea
    Puoi darmi assistenza per fare un redirect 301?
    Puoi contattarmi tramite mail?
    Grazie

  7. non ho capito cosa scrivere sul file .htacces… almeno mi sembra di aver capito che se il voglio reindirizzare un pagina es:
    redirect 301 /http://mionome.it/gallina.html poi metto lo spazio e poi nuova pagina http://www.mionome.it/galline_fritte.html
    giusto???

    scusate per le galline ma nn mi veniva nulla in mente:-)

  8. perfetto grazie mille, oggi provo a spostare tutto perche e da un quasi un mese e ancora ci sono le pagine cecchie in giro..
    grazie a presto

  9. ciao ho rifatto tutti le redirectori ma adesso del sito non si vede piu nulla…neanche la home page..dice errore 500 (se puo interessare uso mozilla) ciao e grazie

  10. grazie per l’informazione!

  11. Ciao Andrea, il Global translator ha colpito anche me.
    Traffico aumentato anche dall’estero, ma un sacco di errori 404.
    Volevo utilizzare la tua stessa tecnica però il modo in cui il traduttore crea le mie pagine è diverso da come lo hai descritto tu e non so come agire.
    Nel mio caso i 404 sono relativi a pagine così:

    http://www.nomesito.it/2009/10/29/nome-articolo/2/&rurl=translate.google.com&lang=it&usg=ALkJrhgxr8SDra1HOh9xPgJRPSJyx30jFA

    Cosa ci scrivo nell’htacces?

    • A cosa fai riferimento quando parli del Global Traslator che ha colpito anche te ?
      Inoltre cosa vuoi dire quando dici che il traslator non crea la pagina come l’ho descritto io ?
      Scusa il ritardo nella risposta :)

  12. Ciao Andrea, preso dalla foga non sono stato molto chiaro. Avevo un plugin installato per tradurre il blog in altre lingue; mi ha causato un sacco di errori 404 e volevo risolvere col 301. Solo che ho centinaia di pagine non trovate con url simili a quello indicato. Ti sarei grato se mi potessi dare qualche indicazione.

  13. Così non posso aiutarti purtroppo…dovresti mostrarmi il tuo sito e darmi qualche informazione in più.

    • Grazie della disponibilità Andrea, l’url del blog è faresoldierisparmiare.it.
      Se mi dici quale tipo di informazioni ti servono te le posto immediatamente.
      Ho trovato in rete queste due soluzioni ma non so quale sia più indicata o corretta.
      Ho preso spunto da un post su google webmaster: http://tinyurl.com/37s22sq

      • Soluzioni trovate:

        RedirectMatch 301 ^/(en|fr|es|ru|de)/(.*)$
        http://www.nomesito.it/$2

        RewriteCond %{HTTP_HOST} ^.*$
        RedirectMatch 301 ^/(en|fr|es|ru|de)/(.*)$
        http://www.nomesito.it/$2

        • Ora non usi più quel plugin.
          Hai provato ad usare il plugin segnalato nel forum ?
          Purtroppo non conosco il plugin in questione quindi non so dirti .
          Queste direttive htaccess le hai provate ?

          • Usavo il plugin indicato nel forum. L’ho disinstallato
            ma ho lasciato in cache le pagine tradotte. Poi ne
            ho bloccata l’indicizzazione tramite robots ma le pagine
            erano già in errore 404. Grazie comunque della
            tua disponibilità. Solo un’ultima cosa, visto che sto per
            provare una delle due direttive. Cosa cambia nei 2 esempi
            tra RedirectMatch …. e RewriteCond %{HTTP_HOST} ?
            Grazie della disponibilità.

          • IN uno fai operazioni singole nell’altro fai un match più ampio.

  14. Salve a tutti, come faccio a fare un redirect di:
    www. miosito.it/ pagina
    su
    www. miosito.it/ pagina.html
    google le vede come due pagine distinte ha dato perfino due punteggi differenti a entrambe e mi da contenuto duplicato please aiutatemi!

    • Filippo è scritto sopra nella guida…cmq:
      redirect 301 /pagina http://www.miosito.it/pagina.html

      Oppure usa il tag canonical nell’header.

      • il problema è che non riesco ad entrare nell’header di /pagina
        (con file zilla non la trovo..esce solo pagina.html)
        ma solo nell’header di /pagina.html poi dovrei mettere

        è sufficiente mettere il tag canonical solo nella pagina.html
        (che è quella che voglio venga indicizzata)??
        il redirect 301 come mi hai mandato non funziona

        • Scusa filippo ma dove lo metti il codice per il redirect ?
          Cosa vuol dire che non riesci ad entrare nell’header della pagina con filezilla ?
          Credo che tu stia proprio sbagliando qualcosa.

      • Ciao Andrea, avrei bisogno di fare questo redirect 301:

        redirect 301 dir/pagina http://www.miosito.it/pagina.html

        però su parecchie migliaia di link, come posso fare?

        in sostanza vorrei potergli dire se sei in un file senza estetione dentro la cartella dir allora punta ad una sola pagina (index.php)

        Riesci a darmi una mano? sono su php e posso usare htaccess tranquillamente.
        Ciao e complimenti sono un tuo vecchio fan da sempre :)

  15. Ciao Andrea ti chiedo gentilmente, ho fatto un restyling ad un sito in wordpress (lnx.marinaresidence.it) il vecchio sito http://www.marinaresidence.it è su server aruba (windows) che mi viena l’accesso al file .htaccess e mi vieta cmq di crearlo. Come posso fare il redirect 301 di tutto il sito vecchio sul nuovo??
    Basta inserire il redirect solo nella home del vecchio sito come suggerisce aruba?

    Grazie

    • Ciao Emiliano, se il vecchio sito è in wordpress allora puoi semplicemente includere il redirect nell’header.php del tuo tema.

      In questo modo avrai redirect per ogni pagina.

  16. Purtroppo no…
    è su server windows e non sono “ferrato” ma penso sia in html
    ti posto uno stralgio di index.. come posso fare il 301 su wordpress?

    MARINA RESIDENCE HOTEL VILLAGGIO – Castro, Lecce, Salento, Puglia.

    <!–
    function openPictureWindow_Fever(imageName,imageWidth,imageHeight,alt,posLeft,posTop) {
    newWindow = window.open("","newWindow","width="+imageWidth+",height="+imageHeight+",left="+posLeft+",top="+posTop);
    newWindow.document.open();
    newWindow.document.write('’+alt+”);
    newWindow.document.write(”);
    newWindow.document.write(”);
    newWindow.document.close();
    newWindow.focus();
    }
    //–>

    Grz

  17. Grazie. Scusa se sono “duro” ma devo inserirlo solo nel file index o in tutte le pagine del sito???

  18. Grazie.. e visto che sono duro ti chiedo.. le pagine devo svuotarle per nonc reare doppi contenuti o inserirsco solo i redirect tra gli head??

  19. GRAZIE DAVVERO E SORRY

  20. Anche a me inizialmente ha dato errore 500, poi ha funzionato. Ho usato il redirect da .htm a .php:

    RewriteEngine onRewriteBase /RewriteRule (.*).html$ /$1.php

    il fatto è che mancano degli spazi, ho risolto mandando a capo:

    RewriteEngine on
    RewriteBase /
    RewriteRule (.*).html$ /$1.php

    (poi io ho usato .htm invece di .html dove compare perché avevo quell’estensione lì, ma questo è chiaro.)

  21. Pingback: Ancora sul Redirect 301 | LA DIGA DELLE TRE GOLE

  22. Salve, io vorrei inserire un redirect 301 sul mio sito poichè ne ho creato uno nuovo con lo stesso nome ma .com, per non perdere le indicizzazioni del vecchio. Il mio problema è che sul vecchio c’è prcaricato un programma e-commerce e non riesco a capire dove inserire la stringa e in che linguaggio. Sapreste darmi una mano? Purtroppo chi l’ha creato è irreperebile, ma io ho l’accesso anche allo spazio web sul server, mi compaiono un sacco di cartelle e nonstante le indicazioni non so dove inserire il redirect.
    Grazie a chi mi può aiutare.

  23. Grazie, vedo cosa riesco a fare.

  24. Grazie mille! Molto utile!

  25. Devo fare un redirect da un sito ad un altro con domini differenti.
    Ho provato a fare questo
    redirect 301 /index.html ht tp://www. dominio.com/index.html
    ma mi fa il redirect solo della home page e non delle altre pagine contenute nel sito…

    ultilizzando questo invece
    Options +FollowSymLinks

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^miosito.com$ [NC] (qui quale sito devo scrivere, il vecchio o quello dove va indirizzato il redirect?)

    RewriteRule ^(.*)$ htt p://www .miosito.com/$1 [R=301,L] ((qui quale sito devo scrivere, il vecchio o quello dove va indirizzato il redirect?)
    mi da errore 500…
    help!!

  26. Sul server di register non funziona il redirect con htaccess e neppure
    utilizzando il classico:
    come fare per reindirizzare le pagine vecchie alle nuove create con joomla?
    Grazie Alfredo

  27. Ciao Andrea, si forse cambiare hosting sarebbe la cosa migliore, al momento però sono nella cac…, il metatag refresh non funziona (vedi la sorgente di http://www.occhioalboma.it/riserva%20zingaro.htm ) che fare?
    Grazie Alfredo

  28. Ciao andrea, complimenti per la guida.
    A me ha restituito un errore nel 500. Ho un sito su joomla su hosting aruba e volevo fare un redirect 301 da http://miosito.com a http://www.miosito.com. Ho inserito il seguente codice:
    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^miosito.com

    RewriteRule ^(.*)$ http://www.miosito.com/$1 [R=permanent,L]

    Logicamente al posto di “miosito.com” ho inserito il mio indirizzo dove posso aver sbagliato?

  29. Ciao, ho rifatto un sito prima in flash, utilizzando wordpress. Sui motori mi compaiono ancora tutt le pagine del vecchio sito anche se non esistono più. Mi indicheresti il modo migliore per effettuare il redirect??

  30. Ciao andrea. Gentilmente se mi puoi aiutare e chiarire: ho un sito vecchio con ovviamente all’interno articoli pagine ecc… con estensione finale .shtml quello che dovrei fare è reindirizzare tutti gli articoli al nuovo sito. Domanda: se ho un articolo che parla di A sul sito vecchio facendo un redirect 301 l’articolo vecchio punta automaticamente all’articolo sul nuovo sito che parla sempre di A ?? oppure si deve fare un redirect singolo per ogni articolo del vecchio al nuovo ? spero di essermi spiegato :-) grazie

    • Ciao Luca. La risposta è dipende.
      Se le url del sito vecchio sono uguali alle nuove puoi usare una singola regola.
      Se le url del sito vecchio e quelle di quello nuovo sono automatizzabili tramite regexp anche.
      Altrimenti devi farne una ad una.

  31. Ciao andrea sono qui di nuovo per un dubbio (grazie per la risposta precedente. Cambiando la struttura dei permalink da postaname a post-id-postaname se non sbaglio sia le pagine che le category restano invariate quindi si dovrà eseguire i redirect solo per i post è corretto? ciao grazie :-)

  32. Grazie, molto utile!

  33. Ciao Andrea,
    complimenti per l’articolo!
    Ho comunque ancora dubbi, su un caso (blog ASP) di cui non ho letto molto. Sto trasferendo il mio blog/windows (dBlog CMS di Marlenek, su ASP) su WP/linux

    Il mio problema è che nel vecchio blog non c’è una pagina iniziale! Cioè, nei tuoi esempi qui sopra, come vecchio indirizzo c’è una pagina html o php etc.: tuo esempio -> redirect 301 /vecchia/vecchia.html http://www.tuodominio.com/nuovapagina.html
    Nel mio caso invece dentro la cartella del blog non c’è nessuna pagina iniziale, per leggere quel blog basta citare l’indirizzo: http://www.travelbaila.it/dblog/

    DOMANDA 1
    Se su .htaccess scrivo questa riga qui sotto, tutto il traffico che va al vecchio blog verrà trasferito alla pagina iniziale del nuovo?
    Redirect permanent /travelbaila.it/dblog/ http://www.travelbaila.it/

    DOMANDA 2
    Se volessi fare le cose meglio, e segnalare lo spostamento di ogni singolo vecchio post (sono 160), posso creare una riga di redirect per ogni post, come in questo esempio?
    Redirect permanent /travelbaila.it/dblog/articolo.asp?articolo=63 http://www.travelbaila.it/manaus-e-il-sogno-perduto-30/

    Se hai voglia e tempo di risponderti te ne sarò infinitamente grato! Buona Pasqua
    :-)

  34. Dubbio: se volessi annullare un redirect 301 fatto lato htaccess (attivo da diversi mesi), qual é la soluzione migliore?

    Grazie e complimenti per il blog!

    • Ciao Gio,

      se vuoi toglierlo dipende dai motivi per cui lo fai.
      Per toglierlo basta che rimuovi la regola dal file .htaccess.

      Forse non ho capito la domanda.
      Fammi sapere
      Andrea

  35. Il mio dubbio riguarda più che altro il “ritorno” della vecchia pagina o sito rediretto. Ad esempio

    Url A > redirect 301 > Url B

    Una volta eliminato il 301 dal file htaccess, l’url A recupererà il vecchio PR o c’é qualche rischio che lo perda?

    E l’Url B, essendo indicizzato potrei trattarlo con un 404 o magari con un canonical in caso di duplicato?

  36. Ciao Andrea. Non sono molto pratica e volevo chiederti un consiglio. Ho creato delle pagine duplicate con estensione .shtml per includere il menu. Ora è meglio che utilizzi il redirect 301 o il codice che hai inicato al n. 4? per mantenere il posizionament nei motori di ricerca c’è differenza tra le due soluzioni?
    Grazie e complimenti

  37. vorrei spostare alcuni post del mio blog (su blogspot) di un argomento in uno ex novo; come faccio per non ottenere da google penalizzazioni sul sito da cui sposterò questi post e tenere nel nuovo le posizioni avute in precedenza? Grazie.

  38. e che mi consigli di fare allora per spostarli nel nuovo blog per non perdere penalizzazioni nel precedente?

  39. grazie, ma perderei posizionamenti? Subirei penalizzazioni da google?

  40. scusami, come lo faccio? Sarebbe di spostare una decina di post da un blog all’altro. Il problema non è tanto quello nuovo che ripartirebbe daccapo, tanto quello vecchio che perderebbe dei post già indicizzati.

    • Non ci capiamo…Mi hai detto che il tuo blog è su blogspot e non credo che da blogspot tu possa fare un 301 e se si può fare io non lo so come perché non uso blogspot.

  41. ok ok ti ringrazio :) a presto.

  42. Ciao Andrea,

    io mi trovo in questa situazione: devo fare dei redirect da ASP a PHP. Infatti il vecchio sito aveva un CMS in ASP e ora è in WordPress.
    Il problema è che voglio fare il redirect preciso di una decina di pagine e le altre mandarle tutte alla home (questo perchè sono migliaia di pagine e voglio reindirizzare solo le più visitate alle nuove con gli stessi contenuti).
    Quindi ad esempio:
    se voglio fare da /Page.aspx?PageId=1 verso /chi-siamo/
    poi
    /Page.aspx?PageId=23 verso /nome-azienda/programma/
    e così per altre 10 pagine ad esempio… e per tutte le altre mandarle verso la nuova home. Come faccio? L’htaccess rispetta la priorità di elenco? (il server sarà apache)
    Grazie mille

  43. Ciao Andrea,
    ho inserito come risorsa utile un link verso questo tuo articolo nel mio eBook “Landig Page Perfetta”.

    Trovi il link a pag. 31.

    Spero che la cosa ti sia gradita. :-)

    L’eBook è gratuitamente scaricabile previo inserimento di email e nome dall’indirizzo in firma.

    Saluti,
    Massimo

  44. Ciao Andrea,
    vorrei fare un redirect 301 di un sito web, su CMS joomla con hosting joomlahost, da http://miosito .com a http://www. miosito .com .
    Vorrei sapere se è possibile fare un redirect 301 di tutte le pagine tramite file .htaccess tutte insieme.
    Mi spiego meglio, ho usato il codice:

    Options +FollowSymLinks

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^miosito .com$ [NC]

    RewriteRule ^(.*)$ http://www.miosito .com/$1 [R=301,L]

    e tutto mi funziona perfettamente, se provo a collegarmi su
    miosito .com mi reindirizza su www. miosito. com.

    Il mio problema è che se provo a collegarmi per esempio su:
    miosito .com/pagina1 mi reindirizza sempre a www . miosito. com
    mentre io dovrei farlo reindirizzare così:
    da miosito .com/pagina1 a www. miosito .com

    E’ possibile tramite qualche istruzione nel file .htaccess, reindizzare tutte le pagine del dominio nella versione con il www in una sola volta ? Oppure devo farlo manualmente per ogni pagina del dominio?

    Grazie per il tuo lavoro svolto.

    Saluti Antonio

  45. Che hosting usi?

    • la stringa che ti ho passato la uso su Joomlahost…

      anche il mio sito personale è lì e la usa e tutto va come dovrebbe!

      Aspetta….

      Ma hai installato qualche componente SEF, tipo 404SEF o altri???
      In quel caso devi configurare direttamente i componenti, si occupano loro dei redirect!
      oppure disinstallali tanto non servono a molto: se li togli ricorda di disattivare tutti i loro plugin e di fare un backup del sito prima… a volte se li disinstalli nn funziona più nulla

      Prova anche ad attivare il debug di sistema dal pannello di configurazione per vedere che succede e a dare un’occhiata ai log del server

      • No, ancora non ho installato un componente sef. Ho provato la tua strinda su due domini entrambi su joomlahost ma ho lo stesso il problema. Se scrivo un link senza il www mi rimanda alla home page del dominio. Mi dai il nome del tuo dominio o è un problema?

  46. Ho provato il tuo codice esattamente così ma mi reindirizza ugualmente alla home page.
    RewriteCond %{HTTP_HOST} ^example.it
    RewriteRule (.*) http://www.example.it/$1 [R=301,L]
    Al posto di “example” c’è il nome del mio dominio. Altre istruzioni non ce sono è la prima che scrivo io. Le altre sono quelle che mette in automatico joomla.

  47. Bello il post, molto esauriente…grazie.

  48. Il mio sito sito nato per gioco, è diventato di circa 1.200 pagine e quindi sto dividendo tutto il materiale in sottocartelle seguendo il metodo descritto in questo articolo. Tutto funziona alla perfezione.
    Domanda: Dopo quanto tempo posso cominciare ad eliminare il contenuto del file .htaccess?

      • Quindi mi pare di capire che alla fine avrò un file .htaccess con circa 1.200 righe e che l’unica soluzione per cercare di svuotarlo, dopo adeguato tempo, sarà di fare la rimozione delle vecchie pagine sugli strumenti per webmaster di Google.

        • Il mio consiglio è di tenerlo per sempre e se ti sarà possibile di metterlo nel file VirtualHost invece che nell’.htaccess.

          Non rimuovere assolutamente le vecchie pagine perché potrebbero ricevere link dall’esterno quindi in pratica fintanto che non esisteranno più referenza alle vecchie dovrai tenere il 301.

          • Scusa ma si sono accavallati i post e quindi il mio secondo va annullato. Mentre scrivevo mi stavi rispondendo.
            Non so cosa sia il VirtualHost ma vado a fare una ricerca per scoprirlo.
            Avevo già intuito che prima di cancellare le vecchie pagine devo controllare che non ci siano richiami dall’esteno.

  49. Ciao Andrea,
    complimenti per l’articolo!

    Però non son riuscito a far funzionare l’htaccess modificato e alla fine ho installato 2 plugin che mi fanno lo stesso lavoro, assai più facilmente ma non so se con la stessa velocità della modifica al solo htaccess.

    Il problema è dato che il blog che ho trasferito su WP aveva querystring.

    Avevo circa 180 post, per cui nel file htaccess ho inserito 180 righe ognuna simile a questa:
    Redirect permanent /travelbaila.it/dblog/articolo.asp?articolo=63 http://www.travelbaila.it/manaus-e-il-sogno-perduto-30/

    C’era qualche errore? Io non lo vedo… :-(

    Ora funziona tutto, ma forse ci perdo in velocità perchè ho 2 plugin in più (uno mi fa il redirect dei 180 post, e un altro mi fa il redirect di tutto il resto che finiva con 404, come ricerche per autore o data o categoria, immagini varie etc).

    Grazie e… buon anno! :-)

  50. Ciao Andrea, complimenti per l’articolo. Ho un problema, attualmente ho le mie pagine riscritte in questo modo:

    RewriteRule ^domande_frequenti/([^/]*)$ /page.php?id=5&lingua=$1 [L]

    Funziona tutto ma dovrei fare un redirect 301 a questa pagina perché adesso si dovrà chiamare: “faq”. Come faccio a fare un redirect 301 di pagine già riscritte?

    Grazie

Leave a Reply

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>