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]

Per chi volesse approfondire l’argomento Mod Rewrite di Apache segnalo questa completa guida di Massimo Della Rovere.

1952

  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

  51. Quindi nel mio caso il codice completo ed esatto sarebbe:

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

    giusto?

  52. Ciao Andrea,

    se voglio fare un redirect di questo tipo mi dice per favore la stringa corretta da inserire ?.

    Vecchia pagina: http://www.nomesito.com/nomecartella/nome_pagina.HTML
    Nuova pagina: http://www.nomesito.com/nome_pagina

    Praticamente ho tolto il “nome cartella” e il “.html” finale dalla vecchia url.
    Il “nomesito.com” rimande uguale.

    Grazie in anticipo per la tua risposta.
    Ciao

  53. Buongiorno Andrea,
    ho trovato molto interessante ed utile il tuo articolo, la mia ignoranza però mi porta a non riuscire a sfruttarne i contenuti.
    Ho un sito in prestashop, con URL friendly disattivato (non posso fare altrimenti), dove devo reindirizzare delle pagine di categoria ad una pagina CMS. Il redirect 301 sono stato in grado di farlo funzionare esclusivamente con l’URL friendly attivato, quindi chiedo a te una mano, trovandoti decisamente preparato in materia!
    Se potessi fare almeno un esempio di come reindirizzare una pagina ad un’altra (nel mio caso), ti metto a disposizione qualsiasi informazione possa esserti maggiormente utile.
    Grazie anticipatamente dell’attenzione e del tempo che dedicherai.
    A.M.

  54. Pingback: » Togliere una cartella dall'URL

  55. Perchè ho un modulo che va in contrasto con l’URL friendly.
    Non posso rinuciarvi e il creatore del modulo non è stato in grado (ne per il mio caso, ne per quello d’altri) di risolvere il problema.
    E’ possibile un redirect con URL friendly disattivato?

  56. Grazie, è stato prezioso.

  57. salve andrea

    Una cortesia, ho un ecommerce zencart devo spostarlo in un nuovo dominio fatto con prestashop ho usato questa regola:

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

    Effettivamente funziona mi sposta tutto, il problema e’ che se per l’index mi reindirizza in modo corretto, per le pagine indicizzate del vecchio sito se vado a cliccarci mi rimanda sul nuovo sito su pagina non trovata….. come posso nell’htaccess aggiungere a mano anche i reindirizzamenti di ogni pagina che desidero sulla corretta pagina del nuovo dominio, per capirci:
    http://www.olddominio.it/faq —-> http://www.nuovodominio.it/faq

    Pensavo di aggiungere alla prima regola anche questa ma non funziona:
    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

    Mi puoi aiutare ?

    grazie

    • Non credo di aver capito.

      Se le pagine esistono sul nuovo e hanno lo stesso percorso allora non dovrebbero dare 404.

      Se il percorso è diverso devi farle 1 ad 1 ma nel file htaccess del nuovo dominio.

      • si esatto esistano nel nuovo dominio ma hanno un “nome” diverso.
        praticamente per capirci:
        vecchio sito it/faq
        nuovo sito it/content/8-faq

        mi sembrava che si dovesse lavorare sull’htacces del vecchio sito e indicare li’ dove reindirizzare la pagina sul nuovo sito, non l’incontrario.
        Mi potresti allora indicare l’istruzione per questo esempio(qui sopra delle faq) cosa scrivere nell’htaccess?

        grazie

  58. Buongiorno Andrea,
    scusa se ti disturbo, ma ho provato a fare quello che hai egregiamente spiegato nel tuo articolo (decisamente il migliore sul web!), ma non ha funzionato, quindi ci deve essere qualche passaggio di base che mi sono persa. Ti chiedo scusa in anticipo se non uso i termini tecnici corretti o se ti do info che sono irrilevanti :)
    Ho un sito con pagine ASP su server Windows sul quale ho un ecommerce di diversi prodotti, che, ai tempi(una decina di anni fa), era stato creato appositamente per noi e per il quale ho accesso tramite FTP. Un paio di anni fa abbiamo creato un nuovo sito tramite un template di Register (per il quale ho poco o nessun accesso per la configurazione). Finora abbiamo tenuto entrambi i siti “aperti” per paura di perdere il buon piazzamento su google di quello vecchio, ma adesso sto cercando un modo di risolvere la situazione.

    Ho quindi creato il file .htaccess come da tue istruzioni, così

    redirect 301 /codiceprodotto http://www.shop.sitonuovo.com/codiceprodotto

    e salvato il file nell’FTP del sito vecchio. Cosa ho sbagliato?
    Grazie mille in anticipo!

  59. Ciao Andrea,
    innanzitutto grazie per queste istruzioni che, specialmente per una sprovveduta come me, sono preziosissime.

    La domanda che ti faccio è appunto un po’ sciocca :) Perdonami

    Ho registrato due nuovi domini, e vorrei che questi reindirizzassero al mio dominio originale, dove ho il sito. Anche in questo caso la procedura corretta è usare il 301 redirect? I due domini resteranno comunque “trovabili”?
    Non so se mi sono confusa abbastanza… :D

  60. Ciao un consiglio per favore sto facendo un restyling di un sito da statico .htm a wordpress.
    ora le vecchie pagine sono miosito.it/pagina.htm che diventeranno miosito.it/pagina
    cosa mi consigli tenendo presente che saranno una trentina di pagine da reindirizzare????

  61. Ho un problema con delle redirect; ho creato il file .htaccess e metà funziona e metà no anche se è stato fatto allo stesso modo.
    esempio link funzionante:
    Redirect 301 /escursioni/sentieroroma/giorno3.htm http://www.waltellina.com/valtellina_valchiavenna/escursionismo_trekking/sentiero_roma/
    link non funzionante
    Redirect 301 /escursioni/tracciolino/index.htm http://www.waltellina.com/valtellina_valchiavenna/escursionismo_trekking/valchiavenna/tracciolino/index.html
    quando punto il link non funzionante il browser mi redirige a questo indirizzo http://www.waltellina.com/valtellina_valchiavenna/escursionismo_trekking/valchiavenna/tracciolino/index.htmlindex.htm che ovviamente non esiste
    Mi sapete dire qual’è il motivo?
    Attendo fiducioso
    Saluti e grazie

  62. roberto fiorentino on

    buongiorno Andrea molto ben spiegato ho fatto un prova ee tutto ok

    io avrei un altra esigenza

    il mio sito è in italiano ed inglese, le pagine originariamente sono sempre state in un unica cartella tutte insieme
    ora ho spostato le pagine in due cartelle una per l’italiano e l’altra per l’inglese

    c’è un modo per fare il redirect di tutte le pagine alle nuove cartelle che le contengono?

    spero che mi puoi dare un consiglio, perchè le pagine sono tante!

    grazie

    Roberto

    • Dipende da come sono le URL vecchie e come saranno le nuove.

      • Buongiorno Andrea.
        Da tempo stò cercando una soluzione ad un problema di reindirizzamento.
        Avevo un sito e-commerce in Zencart e sono passato a prestashop. I due sistemi sono abbastanza diversi quindi ho optato, per non perdere l’indicizzazione a creare un REDIRECT “classico” a tempo 0 in questo modo: ho messo zencart in manutenzione ed ho modificato la index php della manutenzione inserendoci il redirect… Fin quì tutto bene, le vecchie pagine mi mandavano alla home del nuovo sito, ma dopo pochi giorni sulla pagina di google webmaster si sono accese le lucine rosse dicendomi che avevo 1400 pagine in errore 503. ovviamente a google ho tolto la vecchia sitemap di zencart ed ho inviato la nuova di prestashop. cosa mi conviene fare??
        Grazie anticipatamente dell’interesse.

  63. Grazie per la risposta. i nomi delle pagine non saranno uguali, ma questo penso cambi poco la situazione.
    quindi ho preparato un 301 per ogni vecchia pagina.
    ma le pagine vecchie le posso cancellare subito dall’ftp?
    grazie

  64. Ciao, ho il seguente problema:
    Ho un sito di ecommerce fatto con zencart e su tale sito adesso vorrei aggiungere un totale di 5000 articoli provenienti da un distributore, tale distributore a sua volta vuole un link al mio sito di ogni articolo costruito con un redirect che finisca con un ID che mi forniscono loro.
    Come posso fare?
    Grazie per l’aiuto.

  65. Tutto risolto grazie

  66. Salve, molte grazie per le preziose indicazioni.
    Mi trovo però in difficoltà per impostare un redirect con la seguente pagina:
    http://www.damaservizi.eu/it/home-italiano.feed?type=atom

    Applicando il redirect consigliato (nella mia interpretazione…):

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

    Senza successo!
    Grazie per l’aiuto.

  67. Ciao Andrea, grazie mille per le tue preziose indicazioni! mi hanno permesso di capire e applicare tali tecniche.. ora però ho un problemino che non riesco a risolvere probabilmente per il fatto che sono un neofita di tali argomenti.

    La questione è la seguente:
    stò sistemando alcuni URL di un’ecommerce che linkano la stessa pagina. Ad esempio da GWT mi ritrovo che
    http://www.miodominio.it/articoli-promozionali/19_Sciarpe-e-guanti.html
    http://www.miodominio.it/articoli-promozionali/19_Sciarpe-foulards-guanti.html
    puntano alla stessa pagina probabilmente perchè in origine il nome della categoria in questione era diverso ed è stato indicizzato con quel nome. Quello che ho pensato di fare è quindi il redirect 301 all’url attualemnte valido è il primo, quindi ../19_Sciarpe-e-guanti.html

    Seguendo le tue indicazioni ho riportato la seguente riga sul mio htaccess:

    Redirect 301 /articoli-promozionali/19_Sciarpe-foulards-guanti.html http://www.miodominio.it/articoli-promozionali/19_Sciarpe-e-guanti.html

    tutto funge, ma per qualche motivo si porta dietro dei parametri sull’url. Questo può essere dato dal fatto che entrambi gli url sin dall’inizio utilizzano una RewriteRule al fine di comporre un url seo friendly?

    La regola che va a storpiare il risultato secondo me portebbe essere la seguente:
    RewriteRule ^articoli-promozionali/([^/]+).html catalogo.php?prc_id=$1&rewriting=yes [L]

    concordi?

    L’url risultante infatti risulta essere il seguente:
    http://www.miodominio.it/articoli-promozionali/19_Sciarpe-e-guanti.html?prc_id=19_Sciarpe-foulards-guanti&rewriting=yes
    Quindi il redirect viene eseguito correttamente ma ci aggiunge sempre questi parametri ?prc_id=19_Sciarpe-foulards-guanti&rewriting=yes ..

    Non sapendo se le due cose possono coesistere chiedo consigli a tutti voi!

    Grazie anticipatamente per l’attenzione!

  68. Ciao Andrea,
    non riesco a fare il redirect da miosito.it a http://www.miosito.it
    nel file .htaccess trovo scritto questo :
    # BEGIN WordPress

    RewriteEngine on
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    provo ad implementare le righe di codice che tu suggerisci ma non si vede più il sito.
    Come potrei risolvere??
    grazie in anticipo

  69. Ciao Andrea. Uso WordPress e tempo fa cambiai la struttura dei permalink da http://www.nomesito.com/%category%/%postname%.html a http://www.nomesito.com/%postname%/, ora google strumenti webmaster mi restituisce ogni giorno centinaia di link che sto riposizionando a mano con il redirect (sto già a quasi 300, il passaggio si fece quando il blog aveva circa 320 articoli). C’è un modo per “programmare” il redirect affinchè redirecti correttamente, e in automatico, tutti i link? Non voglio usare plugin perchè finora hanno fatto solo macelli (e credo anche di esser stato penalizzato). Grazie mille.

  70. Ciao Andrea,
    sto cercando informazioni riguardo a questo caso:
    ho un sito realizzato con joomla+virtuemart (per convenzione lo chiamo http://www.mysite.it), ho creato una cartella dove ho installato prestashop http://www.mysite.it/prestashop. Ora vorrei fare un redirect da mysite.it a mysite.it/prestashop

    Come posso fare? Ho provato vari codici ma non sembrano funzionare come mai?

    • Ciao Laura che codici hai provato?

      Per fare quello che chiedi ti basta usare una Regular Expression.

      • Ho usato :
        RewriteEngine on
        RewriteRule ^(.*)$ /prestashop [R=301,L]

        ma anche il codice da te riportato in questo modo:
        redirect 301
        /index.php
        http://www.mysite.it/prestashop

        • Ciao Andrea,
          ho risolto il problema. Intanto avevo l’estensione del file htaccess da modificare (togliere txt, non me ne ero accorta, troppa stanchezza) e poi dovevo modificare alcune voci poichè mi trovo su aruba e quindi mi ritornava l’errore 500.

  71. Ciao andrea ho trovato il tuo articolo molto chiaro, ma non so come applicarlo al mio caso.
    Ho un sito in php e ho impostato tramite .htaccess degli url rewrite da url non seo friendly a url seo friendly. Si sono così generati dei contenuti duplicati. Devo applicare un redirect 301… ma in questo caso come funziona? Quale regola impostare??

  72. Ciao Andrea, scusami se ti contatto di nuovo ma non ho capito come fare la regola rewrite nell’httaccess di http://www.nomesito.com/%category%/%postname%.html a http://www.nomesito.com/%postname%/. Mica saresti così gentile da scrivermi la regola? Te ne sarei molto grato.

  73. Salve Andrea,
    è possibile “mascherare” l’URL di un dominio che punta ad un altro?

    Mi spiego meglio:

    http://www.dominiovuoto.it deve puntare su http://www.dominioreale.it/dominiovuoto ma sulla barra indirizzi vorrei comunque http://www.dominiovuoto.it

    Grazie in anticipo.
    Nicola.

  74. Ciao grazie per i tuoi preziosi consigli, io ho usato

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://dominiosucuisitrovailsito.it/ [R=307,L]

    Ma sul dominio su cui ho fatto il redirect, volevo fare delle prove per una nuova veste grafica, il problema è che il redirect funziona su tutte le sottocartelle, come faccio a fare un redirect solo sulla homepage?

    Grazie

  75. Ho disinstallato dal mio sito ALL IN ONE SEO PACK, e da quel momento sono letteralmente scomparso dai motori di ricerca. Il sito è lo stesso, ho reinstallato ALL IN ONE SEO PACK, ma nulla. Sono scomparso. Premetto che il mio sito EDUCAZIONETECNICA.COM era oramai primo nelle ricerche Google da più di un anno con diverse chiavi di ricerca, ora qualunque cosa scriva non esisto su Google, eppure il sito è sempre li, non ho modificato nulla. Come posso ritornare a comparire nelle posizioni che avevo oramai raggiunto? Esiste un modo per ripristinare con i motori di ricerca la condizione precedente? Gli accessi sono crollati, perché non mi si trova più a meno di conoscere il nome del sito e digitarlo nell’URL. Grazie

    • Ciao Davide hai fatto un errore.

      Nel tuo sito vedo che hai questo: quindi molto probabilmente hai spuntati l’opzione nelle impostazioni generali relativa alla visibilità sui motori.
      Onestamente non capisco però cosa questa domanda abbia a che fare con il topic del post.

      In ogni caso spero di esserti stato utile.

      • Davide Betto on

        Cercavo una soluzione al mio problema. Poi ho trovato te e ti ho scritto. Per risolvere il mio problema, quindi, cosa debbo fare? Non sono molto pratico, per cui ti chiedo un minimo di aiuto in più. Grazie ancora.
        Dove trovo quelle spunte?
        Grazie Davide

        • Devi andare in: Impostazioni > Lettura.

          • Davide Betto on

            Fatto, ma la spunta su “Scoraggia i motori di ricerca a fare….” non c’è. Quindi, xchè sono scomparso dalla rete in modo così totale? Avevo installato sul sito ALL IN ONE SEO PACK più di un anno fa e l’ho rimosso una settima fa. Da quel momento…il vuoto. L’ho reinstallato ma nn è cambiato nulla. Ma è possibile una cosa del genere?
            C’è un modo per ritornare visibile e soprattutto per riconquistare la posizione e la visibilità che avevo conquistato?
            Grazie e scusa i ancora x il disturbo

          • Allora avrai inserito quei meta tramite un Plugin oppure nel tuo Tema.

  76. Ciao Andrea, grazie per la risposta, ma il problema persiste. Se inserisco la riga di codice come mi hai suggerito tu (ovviamente col nome del sito corretto), non riesco lo stesso a raggiungere la sottocartella che mi serve (es. http://www.miosito.it/new/wp-admin) ma va sempre al sito attuale e quindi fa http://www.dominiosucuisitrovailsito.it/new/wp-admin dove ovviamente non c’è nulla.

  77. Davide Betto on

    Puoi dare di nuovo un’occhiata la sito? Ho eliminato tutti i plugin installati da poco. Può essere stato secondo te il plugin “Captcha” installato per evitare iscrizioni fasulle che oramai erano nell’ordine delle 30 al giorno? E torno a ripeterti, c’è un modo per ripristinare le vecchie posizioni sui motori di ricerca?

    • Ciao Davide stiamo andando un po’ fuori tema con questi commenti.

      Quello che devi fare è rimuovere quei meta. Non avendo accesso al tuo sito non posso sapere cosa hai fatto. Una volta rimossi quei meta appena Googlebot ripasserà per il tuo sito riprenderà ad indicizzare le pagine, ma non c’è un tempo standard.

      Il problema è quello che ti ho descritto quindi devi semplicemente capire chi mette quei meta.

  78. Ciao Andrea,il mio sito e’ .it vorrei passare ad un altro nome che sia .co.uk ti chiedo se faccio il redirect 301 questo mi aiuta a migliorare il posizionamento del mio attuale sito? ( che essendo un .it e’ limitato nel mercato uk)

    o pensi che sia meglio fare un nuovo sito partendo da zero ( il, che implica 3- 4 mesi per essere posizionato?

    Altra cosa nel fare il redirect rischio di perdermi pezzi o avere danni al sito esistente?
    TI RINGRAZIO
    Francesca

  79. Ciao Andrea,
    ho un “piccolo” problema su un redirect da terzo dominio verso cartella… ti spiego meglio la situazione:
    attualmente ho un blog su un dominio di terzo livello (blog.nomesito.it) che è in wordpress, quindi la sua struttura permalink è ad esempio blog.nomesito.it/2013/09/nome-articolo/
    Ora devo cambiare server, e il blog andrà su nomesito.it/blog/
    Per questo, prima di far puntare i DNS al nuovo server, ho impostato il file host del mio computer facendo puntare blog.nomesito.it all’IP del nuovo server
    Dal pannello cPanel del nuovo server ho impostato il sottodominio blog.nomesito.it e un redirect verso nomesito.it/blog/
    Il redirect funziona correttamente in locale, ma non funzionano i redirect di tutte le altre pagine.. in pratica ho tenuto la stessa struttura permalink e vorrei impostare nell’htaccess l’istruzione per cui tutto il traffico proveniente da url blog.nomesito.it/* vada verso nomesito.it/blog/*
    Spero di essere stato abbastanza chiara… se così non fosse integro :)

    Grazie mille, confido in te!

    • Ciao Laura,

      non conosco cPanel, ma posso intuire che tu debba evitare il redirect via cPanel e inserire nell’htaccess del sottodominio il codice che trovi alla voce “Da sito vecchio a nuovo” di questa guida. ;)

  80. Pingback: » Upload sito aggiornato su nuovo dominio?

  81. Pingback: Anonimo

  82. Pingback: Redirect 301 e WordPress, gestirli a meglio con Redirection | Overclokk.net

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>