Redirect 301 htaccess best practice

Redirect 301 htaccess

Vediamo come implementare il redirect 301 con htaccess e le principali regole di reindirizzamento che ci possono risultare molto utili per eliminare duplicazioni sistemiche, mantenere il posizionamento in seguito al restyling di un sito web (quando vi è l’esigenza di modificare gli URL) oppure quando si migra ad una nuova piattaforma (ad esempio da Joomla a WordPress).

Perché il redirect 301 è fondamentale

Il redirect 301 o spostamento permanente è il processo tramite il quale un URL viene reindirizzato verso un URL differente.

Ogni buon consulente SEO dovrebbe sapere che nel momento in cui si modifica la struttura delle URL di un sito, occorre necessariamente implementare i redirect 301 in modo che ogni vecchio URL deve ridirezionare verso il corrispondente nuovo URL al fine di:

  1. non generare errori 404 (restituiti dal server quando la risorsa richiesta non esiste);
  2. non vanificare l’effetto sul ranking di eventuali backlinks che puntano alle vecchie URL;
  3. non perdere il traffico generato dalla vecchie URL.

Evidentemente in pochi si preoccupano di questi aspetti, in quanto ancora oggi mi capita di dover intervenire su siti in cui la perdita di traffico dipende sistematicamente da una non corretta gestione dei redirect (o di una loro completa assenza).

Case history: qualche anno fa analizzando un’importante perdita di traffico sul sito di una multinazionale, mi resi conto di come i backlinks provenienti da altri siti (tra cui Wikipedia) puntavano a pagine che restituivano 404.

Il danno si era verificato in seguito ad una migrazione da Joomla a WordPress poiché gli sviluppatori non si erano preoccupati di gestire questo aspetto con le dovute analisi.

E’ stato sufficiente implementare dei semplici redirect 301 via htaccess verso le nuove URL per recuperare tutto il traffico perso in circa una mese.

Differenza tra redirect 301 e 302

Lato utente la differenza fra redirect 301 e 302 è impercettibile, poiché in entrambi casi si viene reindirizzati verso il nuovo indirizzo.

Anche i motori di ricerca, abituati alla cattiva implementazione dei webmaster, considerano entrambi questi reindirizzamenti come definitivi. In linea teorica però:

  • Redirect 301: reindirizzamento permanente;
  • Redirect 302: reindirizzamento temporaneo (protocollo HTTP 1.0) o trovato (protocollo HTTP 1.1).

Quindi il 301 è il redirect corretto da implementare nella maggior parte dei casi.

Redirect 301 htaccess intero sito

Quando si ha l’esigenza di reindirizzare in modo permanente le richieste da un vecchio dominio verso uno nuovo, la regola più corretta da inserire nel file htaccess presente nella root del vecchio dominio è la seguente:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.nuovodominio.com/$1 [R=301,L]

In questo modo si ottiene un reindirizzamento di massa di tutte le richieste dal vecchio dominio verso il nuovo dominio.

Redirect 301 htaccess singolo URL

Quando invece si vuole reindirizzare un vecchio URL verso un nuovo URL, la regola da inserire nell’htaccess è la seguente:

Options +FollowSymLinks
RewriteEngine on
Redirect 301 /vecchio-url.html http://www.dominio.it/nuovo-url.html

Questa regole permette di reindirizzare l’indirizzo http://www.dominio.it/vecchio-url.html verso l’indirizzo http://www.dominio.it/nuovo-url.html.

In questo modo ogni volta che un client richiederà il file vecchio-url.html sarà automaticamente reindirizzato al file nuovo-url.html.

Redirect 301 htaccess da non www verso www e viceversa

Per prevenire duplicazioni sistemiche è corretto stabilire la versione canonica del dominio (detta anche dominio principale).

A tal fine è buona prassi reindirizzare ogni URL senza www verso la versione con www (o viceversa). Per farlo la regola da inserire nel file .htaccess è:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.dominio\.it$
RewriteRule ^(.*)$ http://www.dominio.it/$1 [R=301,L]

In questo esempio, ogni qual volta richiediamo la versione senza www (http://dominio.it) viene restituita la versione con www (http://www.dominio.it).

Se invece abbiamo stabilito che la versione canonica deve essere quella senza www, la regola da inserire è:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^dominio\.it$ [NC]
RewriteRule ^(.*)$ http://dominio.it/$1 [R=301,L]

In questo secondo esempio ogni qual volta richiediamo la versione con www (http://www.dominio.it) viene restituita la versione senza www (http://dominio.it).

Redirect 301 per eliminare index.php dall’URL

Un problema che hanno molti siti e CMS realizzati in php è la presenza della stringa /index.php negli URL (chi utilizza Joomla e Magento sa bene a cosa mi riferisco). Il codice da inserire nel .htaccess per eliminare index.php è:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)index\.php$ /$1 [R=301,NC]

Conclusioni

Oggi abbiamo visto alcune buone regole per implementare il redirect 301 via htaccess.

Naturalmente occorre testare il funzionamento di questi codici, i quali per poter funzionare potrebbe essere necessario variare le precedenti regole inserite nel proprio file .htaccess oppure le configurazioni del proprio server.

Inoltre è consigliabile non copiare i codici indicati direttamente nel vostro file .htaccess, ma è preferibile copiarli prima in un file di testo per rimuovere la formattazione e solo in seguito nel vostro file htaccess. In caso contrario, le regole potrebbero non funzionare.

Se hai suggerimenti o per maggiori informazioni sui redirect 301 tramite htaccess non esitare ad utilizzare i commenti.

Iscriviti alla Newsletter!

Ottieni l’accesso a guide, strategie e tutorial esclusivi che non condivido da nessun’altra parte.

Sottoscrivo la Privacy Policy di Valentino Mea. Sottoscrivendo acconsenti a ricevere informazioni e offerte riservate. Rispettiamo la tua privacy, i tuoi dati sono al sicuro e non saranno mai ceduti a terzi.

Libro SEO per E-Commerce PRO di Valentino Mea

Libro SEO per E-Commerce PRO

Valentino Mea

  • Esperto di Search Marketing dal 2009 con migliaia di progetti SEO e Google Ads dimostrabili gestiti.
  • Supporta Aziende nazionali e internazionali nello sviluppare business sostenibili e redditizi, tramite il Marketing sui Motori di Ricerca.
  • Ad oggi ha formato 932 consulenti SEO e Google Ads, autonomi e dipendenti.
  • Autore di “SEO per E-commerce PRO” il Libro Best Seller su come ottimizzare siti e-commerce per aumentare il posizionamento su Google e trasformare gli utenti in clienti. Puoi trovarlo su Amazon.
  • Ideatore del Video Corso “Diventare SEO” il 1° corso in Italia che insegna in modo pratico la SEO e come monetizzare le competenze.
  • Fondatore della SEO Membership® l’unica community privata dove si incontrano ogni settimana imprenditori, colleghi e aspiranti per discutere di SEO e business online.
  • Dal Novembre 2013 condivide tutorial pratici e la sua esperienza nel settore su questo blog.

Vuoi sviluppare un business online di successo o vuoi essere formato anche tu ad alti livelli?

Richiedi Informazioni

Commenti (86)

  • Ciao Valentino,
    dopo aver studiato un bel po’ i tuoi articoli a fine maggio ho fatto una migrazione del mio sito web situato su Siteground dove ho dovuto fare solo un cambio di dominio primario.
    Il programmatore ha eseguito i redirect con espressione regolare, io mi sono occupata dell’invio della sitemap e del cambio di indirizzo su Google Search Console che ancora tra l’altro deve avvenire.
    Ho controllato dalla sitemap che tutti i redirect funzionassero a dovere ma monitorando la situazione su Google Analytics ho notato un calo drastico del traffico e sono un po’ preoccupata dal momento che dal 2019 supero le 120 mila visite sul sito.
    In pratica sono scomparsa dalla serp per tantissime parole chiave e non ho idea di cosa sia successo. Non so se dipende dall’update di google o da altro.
    Secondo te cosa posso fare?
    Grazie
    Grazie

    • Buongiorno Luigina,
      se come dici i redirect sono stati implementati correttamente, se il tuo è un progetto professionale, l’unica cosa che mi sento di consigliarti e svolgere un SEO Audit tecnico per accertare se il calo è dovuto a problematiche tecniche oppure ad altri motivi. Buon lavoro.

  • Salve, sono atterrata su questo sito e con mia grande sorpresa ho trovato la competenza e la professionalità da me ricercata dopo mesi.
    Sinceramente grazie per l’aiuto condiviso attraverso articoli di grande interesse dall’esposizione limpida e scorrevole.
    Grazie mille!!
    Buon proseguimento

  • Ciao Valentino e complimenti per il tuo ottimo articolo!
    Non ho però trovato una soluzione per il problema che ho rilevato sul mio sito da qualche giorno. WordPress per ogni articolo ha creato delle URL del tipo:

    https://www.sito.it/uccelli-esotici-110612.html/uccelli-esotici

    che si vanno ad aggiungere alla URL originale del tipo:

    https://www.sito.it/uccelli-esotici-110612.html

    Quale riga di comando posso aggiungere nel mio .htaccess per reindirizzare tutte le URL “fittizie” verso le URL “originali”?

    Grazie 1000 per tue eventuali risposte!

    Se poi riesci anche a capire per quale motivo si sono create queste URL fittizie (su tutti gli altri miei siti in WordPress il problema NON si presenta) raddoppio i ringraziamenti! :-)

    Un saluto e buon lavoro,
    Matteo

    • Buongiorno Matteo,
      senza conoscere il contenuto del tuo file htaccess è impossibile fornirti alcun consiglio, se non quello di contattare un sistemista e far verificare il tuo file htaccess. Sicuramente non è normale la situazione che descrivi ed è sintomatica di un errore di sintassi nelle regole di riscrittura. Buon lavoro.

  • Ciao ho un problema. Per il vecchio dominio non è stato rinnovato l’hosting ma è stato acquistato un semplice servizio di redirect. Come faccio a reindirizzare tutti gli url del vecchio dominio a quello nuovo? Non ho modo di accedere al file htaccess

    • Buongiorno Marco,
      non fornendo informazioni specifiche sul “semplice servizio di redirect” e sulle opzioni che mette a disposizione, ovviamente non posso darti alcun suggerimento in merito. Buon lavoro!

  • Salve e complimenti per l’articolo ed il blog. Ho una domanda: ho un portale che attualmente ha pagine html ed è in http. Dovrei passare ad https e contestualmente anche cambiare CMS passando quindi a WordPress.

    La soluzione più semplice sarebbe creare il nuovo sito in WordPress e fare un unico redirect 301 dalla pagina (vecchia html) alla nuova in https che girerebbe su WordPress.

    Il mio server però di default ha già attiva la versione https e quindi oggi mi ritrovo con due siti praticamente duplicati sia in http che https.

    La mia domanda è questa: posso fare un redirect 301 OGGI dalle mie VECCHIE PAGINE HTML sempre alle VECCHIE PAGINE HTML ma in https e successivamente poi, farne un altro, dalle vecchie in https alle nuove (sempre https) di WordPress?

    Spero di essere spiegato bene. Ti ringrazio

    • Buongiorno Giuseppe,
      provo a rispondere ai tuoi quesiti, sperando di aver compreso il senso delle tue richieste.

      Oggi ti conviene forzare le richieste in https ed implementare un redirect da http verso la versione in https.

      Domani ti confermo che potrai fare tranquillamente i redirect dalle vecchie pagine in https alle nuove pagine in https di WordPress.

      Buon lavoro.

  • Buongiorno e complimenti per l’articolo e la disponibilità verso tutti.
    Sto migrando un vecchio sito statico verso WordPress, il nome dominio rimarrà lo stesso. Molte pagine sono ben indicizzate da Google e hanno estensione .htm

    In wordpress ci sono permalink e plugin specifici che permettono di mantenere lo stesso identico nome. Mi è chiaro l’aspetto relativo al redirect 301, vorrei sapere se possibile, se secondo lei mantenere il nome o fare la redirect hanno la stessa valenza finale al fine del mantenimento del ranking.

    Nel primo caso, mantenere .htm, vedo lo svantaggio di rimanere legato ad un plugin; rispetto al redirect 301 ci possono essere aspetti potenzialmente negativi? e nel lungo periodo conviene poi rimuoverli ?

    Grazie per l’attenzione e buon lavoro!

    • Buongiorno Maurizio,
      provo ad interpretare la tua richiesta in merito alla migrazione da sito statico verso WordPress:

      1) Se gli URL restano i medesimi e quindi non cambiano (estensione .htm compresa), dal punto di vista SEO non avrai alcuna problematica da risolvere.

      2) Se implementi il redirect 301 dai vecchi URL in .htm verso i nuovi con differente estensione, invece devi svolgere una corretta mappatura dei precedenti URL e implementare i rispettivi redirect 301 per non perdere traffico organico e autorità. I redirect 301 dovranno essere implementati a tempo indeterminato (questo è un aspetto fondamentale).

      Spero di aver ben compreso la tua richiesta e di averti fornito una consulenza utile in merito. Buon lavoro!

  • Buongiorno,
    una domanda, come faccio a reindirizzare tutte le pagine del mio vecchio sito a quello nuovo? Se si tratta di homepage sono riuscito, ma se digito Vecchiosito.it/pagina.php mi reindirizza a Nuovosito.it/pagina.php invece mi deve portare su Nuovosito.it

    Grazie

    • Buongiorno Antonio,
      la tua domanda non è corretta, in quanto tu non vuoi reindirizzare tutte le pagine del tuo vecchio sito verso le pagine equivalenti di quello nuovo. Da quello che scrivi la tua esigenza è quella di reindirizzare tutte le pagine del tuo vecchio sito verso la homepage del nuovo sito.

      Seppure non mi è chiaro il perché di questa tua esigenza, in questo caso la soluzione corretta è impostare un redirect many to one di tutte le pagine del vecchio sito verso la homepage del nuovo sito.

      Nei commenti precedenti ho già postato degli esempi in tal senso che ti invito a leggere e studiare con calma. Buon lavoro!

  • Ciao Valentino,
    Sto attualmente cercando di trasferire un sito su un altro sito.
    Per farlo ho implementato questo codice:

    Options +FollowSymLinks RewriteEngine on RewriteRule (.*) http://www.nuovodominio.com/$1 [R=301,L]

    Il problema è che con questo mi viene reindirizzata SOLO la home e il pannello di controllo wordpress (Wp-admin per intenderci) e non tutte le categorie, contenuti, pagine ecc

    Sapresti mica come aiutarmi?

    • Buongiorno Alvise,
      la regola di reindirizzamento è giusta, quindi dovrebbe funzionare tutto correttamente. E’ poco probabile che avviene il redirect solo per la home e il wp admin, mentre per le altre risorse viene restituita la URL del precedente dominio. Hai provato a svuotare la cache?

      Buon lavoro.

  • Ciao Valentino,
    complimenti per l’articolo.

    Una domanda: devo fare dei redirect da un sottodominio (blog.nomesito.it/articolo-1) al dominio principale (nomesito.it/articolo-1).

    E’ corretta la seguente forma:

    Redirect 301 /articolo-1/ https://www.nomesito.it/articolo-1

    oppure devo specificare il sottodominio nel redirect?

    Grazie

    • Buongiorno Gianni,
      se l’obiettivo è rendirizzare un solo articolo del sottodominio verso un altro articolo del dominio principale, la sintassi che proponi è corretta. Se, invece, devi implementare un redirect di massa di tutti gli articoli del sottodominio verso il dominio principale e le URL non non cambiano, puoi utilizzare la regola di reindirizzamento illustrata nel paragrafo “Redirect 301 htaccess intero sito”.

      Buon lavoro.

  • Complimenti per l’articolo e l’ottima esposizione.
    sto per spostare un piccolo sito, con alcune pagine indicizzate, sullo stesso dominio ma su server linux anziché windows. Le pagine restano le solite, ma cambia l’estensione (da asp a php).

    Ho pensato che potrebbe essere sufficiente impostare nel htaccess la direttiva che fa accettare i file con estensione asp come se fossero php, con questo codice:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^nome.asp$ nome.php [L]

    Però non sono così sicuro che funzioni: posso chiederti cosa ne pensi? Grazie.

    • Buongiorno Franco,
      in merito al reindirizzamento tramite htaccess di URL .asp verso URL .php, non ritengo che la regola di riscrittura che proponi sia funzionante. Ritengo più corretta la seguente regola:

      RewriteEngine On
      RewriteBase /
      RewriteRule ^(.*).asp$  http://www. dominio . it/$1.php [L,R=301]

      Naturalmente va testata per verificare se funziona per il tuo caso specifico. Buon lavoro!

  • Buongiorno Valentino, spero che la discussione sia ancora attiva e che sia possibile commentare per chiederti una info.

    Ho appena terminato lo sviluppo di un sito su piattaforma WordPress per un’azienda, su un nuovo dominio che hanno acquistato. Ora, ho totale accesso al vecchio dominio e mi sto preparando ad inserire regole redirect 301 da vecchiosito.it a nuovosito.it.

    Volevo chiederti se è possibile inserire due regole insieme in .htaccess, una per URL specifici e una generale. Mi spiego meglio con un esempio:

    – la pagina vecchiosito.it/catalogo/prodotto1 farla rimandare a nuovosito.it/prodotto1,
    – tutte le altre pagine invece rimandarle semplicemente a nuovodominio.it.

    Questo perché ho delle pagine prodotto che vorrei far rimandare agli stessi prodotti sul nuovo sito (i due siti hanno struttura URL molto diversa) e invece tutte le altre pagine rimandarle alla home del nuovo sito.

    Grazie,
    Fabio.

    • Buongiorno Fabio,
      chiunque può sempre commentare l’articolo, naturalmente rispondo quando mi è possibile farlo.

      Ritornando alla tua domanda, nel file .htaccess puoi inserire tutte le regole che vuoi, ma è consigliabile inserire solo ciò che realmente serve e con una sintassi corretta, per non appesantirlo inutilmente.

      Nella tua richiesta, per quello che ho capito dalle tue spiegazioni piuttosto vaghe, ritengo che vi sia un errore concettuale. A te non occorrono 2 regole nel medesimo htaccess, bensì una regola nel htaccess del vecchio sito e le altre nel htaccess del nuovo sito. In bocca al lupo!

  • Ciao, ho un dubbio. Ho dovuto spostare metà di un sito su un nuovo dominio per diversificare dei servizi con un nuovo marchio. Quando potrò eliminare dal vecchio sito le pagine che contengono il redirect 301? Google andrà a sostituire i risultati di ricerca con il nuovo dominio o mantiene sempre il redirect?
    Ti ringrazio per la risposta.

    • Buongiorno Riccardo,
      il redirect viene erogato lato server, quindi le pagine reindirizzate puoi eliminarle in qualsiasi momento, ma naturalmente le regole di reindirizzamento non dovranno mai essere eliminate dal file htaccess o dal file web config, a seconda di come hai implementato i redirect.

      Google, una volta assorbita la modifica, sostituirà i precedenti risultati con i nuovi, ossia quelli relativi al nuovo dominio. Buon lavoro!

  • Buongiorno Valentino!
    Grazie mille per questo articolo.
    Avrei una domanda per te, sperando di non essere troppo off topic. Io ho un blog su piattaforma blogger. Da poco ho cambiato l’url del blog. Sto cominciando proprio ora a utilizzare gli strumenti di google search console..e vorrei capire una cosa. Avendo io cambiato solo l’url, il blog è uno solo. Vorrei però fare in modo che chiunque cerchi il vecchio blog, o chiunque entri nei link che riportano al vecchio blog, venga direttamente mandato al nuovo blog e alla pagina corrispondente (quindi con il nuovo url). Come posso fare?
    Scusa per la poca praticità ma sono una profana :)
    Ti ringrazio in anticipo.
    Buona giornata!

    • Buongiorno Loredana,
      non ho compreso, da ciò che scrivi, in che tecnologia è realizzato il nuovo blog. Ad esempio, se ora il tuo blog è in WordPress, ti è sufficiente cercare “Come migrare da Blogger a WordPress” per trovare diversi tutorial pratici che possono risolverti il problema. Se, invece, sei ancora su blogger, ritengo che l’unico modo possibile sia implementare il rel canonical, dove le precedenti URL canonicalizzano le URL del nuovo blog. Spero di esserti stato utile.

  • Buongiorno,
    devo fare un redirect 301 da un domino di secondo livello (servizio.nomedominio.it) ad una nuova URL in cui si trova il servizio (www.nomedominio.it/servizio/). Che istruzioni devo dare al file htaccess?

    Cordiali Saluti

    • Buongiorno,
      per fare il redirect di un sottodominio verso il dominio principale (o verso una sua specifica pagina), riportando il tuo esempio, potresti provare la seguente regola:

      RewriteEngine On
      RewriteCond %{HTTP_HOST} ^servizio\.nomedominio\.it$ [NC]
      RewriteRule ^(.*) http://www.nomedominio.it/servizio/$1 [L,R]

      Naturalmente il funzionamento dipende da eventuali altre regole presenti nel file htaccess. Buon lavoro!

  • Chiaro ed esaustivo come sempre!
    ho una domanda che potrebbe essere una eresia ma permettimela:
    avrebbe senso reindirizzare il vecchio blog di Blogger (che ha scarsissimo peso SEO ma che continua ad essere visitato) semplicemente inserendo un avviso “di trasloco” nelle varie pagine invitando a digitare l’url del nuovo sito (su WP) o a cliccare su un normale link?
    Magari ripetendo la stessa funzione in ciascuna delle poche pagine.
    Ci sono controindicazioni pratiche (salvo il fatto che non recupererei i commenti e i dati SEO)? Potrei incorrere in penalizzazioni?

    • Buongiorno Giorgio,
      dovresti avere le risposte dettagliate ai tuoi quesiti nel documento di analisi che hai acquistato e che ti è stato consegnato. Probabilmente il tuo commento è precedente alla richiesta di consulenza.
      Ti ringrazio.

  • Ciao Valentino,
    facendo il redirect dell’intero sito mi troverei questa situazione in automatico per tutte le pagine?

    Ad esempio se digito:

    vecchiosito.it/prova2

    reindirizza verso

    nuovosito.it/prova2

    dove in automatico andrebbe a sostituirsi solo l’URL principale in tutte le pagine?

    • Buongiorno Antonio,
      è corretto quanto scrivi in merito al Redirect 301 dell’intero sito, poiché tutte le richieste al precedente dominio verrebbero reindirizzate in automatico al nuovo dominio. Buon lavoro!

  • Salve Valentino, grazie per la disponibilità in anticipo, ho visto che hai risposto a molti commenti, spero potrai aiutare anche me…

    Ho cambiato “gestionale” del sito, passando da quello molto vecchio all’ormai utilizzatissimo WordPress.

    I vecchi link del sito sono strutturati in questo modo (esempio):

    http://www.miosito.com/italiano/testo_type.php?pagina=chi%20siamo

    dovrei rindirizzare a

    http://www.miosito.com/pagina-nuova

    Siccome il sito presenta non più di 30 link avevo pensato di riscriverli a mano per non perdere alcun link già indicizzato ma non riesco.

    Redirect 301 /italiano/testo_type.php?pagina=chi%20siamo http://www.miosito.com/pagina-nuova

    non ottengo alcun risultato… potresti aiutarmi?
    Grazie ancora!

    • Buongiorno Patrick,
      è normale che la regola che hai inserito non funziona, poiché si tratta di URL parametriche e il redirect 301 di URL parametriche tramite htaccess necessita di regole di riscrittura.

      Questa tipologia di richieste necessitano, per ovvie ragioni, di acquistare una consulenza ad hoc.

      Provo comunque ad aiutarti. Facendo riferimento al tuo esempio, potresti provare con questa sintassi:

      RewriteEngine on
      RewriteCond %{QUERY_STRING} pagina=chi%20siamo
      RewriteRule ^italiano/testo_type\.php$ /pagina-nuova/? [L,R=301]

      Naturalmente prima di testare questa regola di riscrittura è consigliabile farsi un backup del contenuto del file htaccess, poiché ci sono elevate probabilità che la regola non funzioni poiché potrebbe essere in conflitto con altre regole presenti nel file. Buon lavoro!

  • Buongiorno,
    grazie per la guida e per le dritte.
    Avrei bisogno di un indicazione per un caso specifico non riportato.
    Sto procedendo ad una serie di redirect 301 di URL generate dal mio cms con meta tag e meta description duplicate ma ho notato che negli indirizzi con un punto interrogativo nella url, il redirect non funziona. Esempio:

    redirect 301 /pagina-sito/itemid?123 https://www.miosito.com/pagina-sito

    Un redirect di questo tipo non funziona.

    Come posso risolvere?

    • Buongiorno therover,
      ritengo che tu non abbia fornito tutte le indicazioni per poter rispondere a questa richiesta. Ad esempio, digitando:

      www.miosito.com/pagina-sito/

      questo indirizzo reindirizza verso:

      www.miosito.com/pagina-sito/itemid?123

      Oppure non avviene alcun reindirizzamento? Inoltre, il parametro itemid cosa genera?

      Questo è il tipico caso dove non conoscendo il tuo sito e la tua problematica precisamente, se tu non spieghi in dettaglio la questione non si può fornire alcun tipo di risposta pertinente.
      Buon lavoro!

  • Ciao, complimenti per l’articolo, non sono riuscito però a trovare una soluzione al mio problema, spero tu riesca ad aiutarmi.

    Il normale redirect che utilizzo con l’htaccess non funziona per il seguente redirect:

    https://www.nomesito.com/?comment_mail%5Bmanage%5D%5Bsub_new%5D=0&comment_mail%5Bmanage%5D%5Bsub_form%5D%5Bpost_id%5D=39

    verso

    https://www.nomesito.com/nuovoindirizzo

    Infatti non avviene nessun redirect. Grazie anticipatamente.

    • Buongiorno Carlo,
      per il redirect 301 di URL parametriche con query nei parametri, è necessario implementare regole di riscrittura affinché il redirect avvenga. Nei commenti precedenti ho fatto alcuni esempi di regole di riscrittura da cui puoi prendere spunto.
      Buon lavoro!

  • Antonietta Barbaro

    Salve, vorrei spostare i contenuti del vecchio blog discretamente posizionato su Google su un nuovo dominio e hosting. Come posso fare senza portare nel nuovo blog backlink e problemi vari del vecchio blog, ma senza nemmeno perdere il posizionamento? Grazie!

    • Buongiorno Antonietta,
      la tua domanda è piuttosto complessa da rispondere. Provo ad essere sintetico.

      Per migrare il vecchio dominio sul nuovo senza perdere i posizionamenti, devi comprendere gli asset del tuo sito da cui dipendono i posizionamenti e il traffico. Una volta individuati, dovrai valutare quali asset sia necessario e indispensabile preservare per non perdere traffico e visibilità sui Motori di Ricerca e preparare un piano di redirect.

      Allo stesso modo, dovrai individuare gli elementi negativi da non migrare ed escluderli dal piano di redirect.

      Come vedi la questione non è affatto semplice e necessità di competenza ed esperienza per trovare il giusto equilibrio.

      Buon lavoro!

  • Salve Valentino.
    Per far andare in automatico le chiamate http su https di ownCloud, ed inoltre far scomparire index.php dall’url, dopo aver attivato il certificato SSL, è giusto modificare il file aggiungendo le seguenti righe sia per LAN che Internet, ed anche Localhost?

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^IP_Pubblico/owncloud [NC] 
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://IP_Pubblico/owncloud/$1 [R,L]
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^IP_Lan [NC] 
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://IP_Lan/owncloud/$1 [R,L]
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^localhost/owncloud [NC] 
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://localhost/owncloud/$1 [R,L]
    Options +FollowSymLinks 
    RewriteEngine On 
    RewriteBase / 
    RewriteRule ^(.*)index\.php$ /$1 [R=301,NC]
    

    Inoltre, modificare il file nella directory principale o in quella di config?

    • Buongiorno Fabs,
      la tua richiesta è molto specifica e necessità di una sessione di analisi a riguardo. Non ho i dati relativi al tuo server e di conseguenza non ti posso fornire alcun aiuto in merito. In ogni caso sul web ci sono diversi tutorial ed anche nella documentazione di ownCloud ci sono sezioni in merito. Ti ringrazio comunque per il commento.
      Buon lavoro!

  • Ciao, tutto chiarissimo, complimenti, ho solo un dubbio. Immaginiamo di avere il vecchio sito su Dominio.it e volerlo spostare in toto su Nuovodominio.it per installare su Dominio.it un differente progetto. Facendo un redirect 301 dell’intero sito non potrei più ospitare nulla su Dominio.it? Anche stando attento ad usare solo indirizzi non reindirizzati avrei comunque il problema con la home Dominio.it, o sbaglio?
    Grazie!

    • Buongiorno Mario,
      se implementi un redirect 301 dell’intero sito tutte le richieste verso Dominio.it saranno reindirizzate a Nuovodominio.it. Quindi devi organizzare il piano di redirect diversamente, reindirizzando soltanto URL specifiche del vecchio dominio verso il nuovo.
      Buon lavoro!

  • Ciao Valentino,
    sul mio dominio attualmente ho WordPress ma voglio passare a Joomla. Ho caricato joomla in una sottocartella così: ilmiosito.it/joomla. Ora come posso fare per impostare joomla come sito principale (ilmiosito.it) senza spostare la cartella? Ringrazio in anticipo per l’eventuale risposta.

    • Ciao Roberto,
      il tuo quesito è fuori target rispetto al topic di questo articolo (redirect tramite htaccess), ma provo comunque ad aiutarti.

      Per risolvere il tuo problema l’unico modo è cambiare la Document Root del server, dove dovrai impostare la cartella contenente Joomla. Non vedo ulteriori alternative se non vuoi spostare la cartella nella root principale (soluzione molto più semplice). In bocca al lupo!

  • Buongiorno Valentino,
    che regola devo inserire per poter trasformare tutte le url del mio sito da /pagina a /pagina.html. In pratica vorrei aggiungere il suffisso .html a tutte le mie pagine.
    Grazie e buona giornata!
    Gianni

    • Buongiorno Gianni,
      sinceramente non comprendo le ragioni per cui dovresti aggiungere l’estensione .html alle tue URL.

      In ogni caso, per aggiungere l’estensione .html alle URL tramite htaccess, puoi provare con la seguente regola di riscrittura:

      RewriteCond %{REQUEST_URI} !^.*\.html$
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ $1.html [L,R=301]

      Naturalmente il funzionamento dipende dal contenuto del file htaccess, il quale potrebbe presentare regole in contrasto. Buon lavoro!

  • Buongiorno Valentino, grazie per l’utile articolo sul 301.
    Io ho un caso un po’ particolare da esporti: l’azienda per cui lavoro aveva un sito con estensione .it (esempio: Azienda.it). Per questioni che non sono riuscito ad approfondire (io non lavoravo ancora con loro), hanno perso il dominio .it e hanno rifatto il sito in .com.

    Ovviamente non hanno fatto nessun redirect e hanno perso molto del traffico precedente. In questi giorni sono riusciti a riacquistare il dominio.it che adesso punta al .com.

    La domanda è questa: come faccio, non avendo accesso al precedente DB, a effettuare un redirect 301 dal vecchio al nuovo dominio? E, considerando che è passato quasi un anno, è ancora utile farlo?
    Grazie per la tua attenzione.

    • Buongiorno Francesco,
      effettivamente è incredibile che ancora oggi vi siano aziende che non gestiscano la migrazione SEO del proprio sito.

      Venendo ai tuoi quesiti:

      1. Ora che siete nuovamente proprietari del vecchio dominio con estensione .it puoi tranquillamente predisporre tutti i redirect 301 direttamente nel file htaccess di questo dominio;
      2. Visto che la mancata gestione della migrazione ha comportato una perdita di traffico, sicuramente vi sono degli asset da recuperare e quindi ha sicuramente senso gestire la migrazione anche a distanza di un anno. Naturalmente sarà la bravura di chi gestirà la migrazione a comprendere e gestire da quali asset dipendeva il traffico e la conseguente perdita.

      Spero di esserti stato utile. In bocca al lupo!

  • Buongiorno,
    il programma che ho utilizzato per fare il sito internet mi genera file .html. Non riuscendo a nascondere l’estensione ho provato a inserire il redirect 301 da vecchio link a nuovo link per fare in modo che digitando:

    www.sandroesteve.it/momenti

    non mi restituisca una pagina 404 ma bensì mi reindirizzi alla pagina corretta. E’ giusto fare così oppure genera qualche problema di seo e indicizzazione? Per la precisione ho inserito:

    Redirect 301 /vecchio-url.html http://www.dominio.it/nuovo-url.html
    • Buongiorno Stefano,
      in realtà non comprendo perché dovresti rimuovere l’estensione .html, anzi non ne vedo alcun motivo.

      In ogni caso, per rimuovere le estensioni delle URL tramite htaccess, si può provare la seguente regola di riscrittura:

      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^([^\.]+)$ $1.html [NC,L]

      In merito alle problematiche relative alle SEO, ho già risposto in questo commento.

      Buon lavoro!

  • Ciao Valentino,
    che regola devo inserire nel mio sito ora che ho attivato un certificato SSL?
    Vorrei che in automatico tutte le chiamte verso http vadano direttamente in https.
    Grazie!
    marine

    • Buongiorno Marine,
      per forzare il redirect da http verso https tramite htaccess, puoi provare la seguente sintassi:

      RewriteEngine On 
      RewriteCond %{HTTP_HOST} ^miosito\.it [NC]
      RewriteCond %{SERVER_PORT} 80 
      RewriteRule ^(.*)$ https://www.miosito.it/$1 [R,L]

      Il funzionamento dipende dal contenuto del file htaccess.
      Buon lavoro!

  • Buongiorno e grazie per l’articolo che mi ha aiutato a fare redirect 301.
    Se io dovessi far reindirizzare un gruppo di link che segue il /2016 in / (home). Mi spiego meglio:
    far reindirizzare tutti i link con /2016, quindi /2016/chi-siamo, /2016/dove-siamo, etc tutti in Miosito.it. Come posso mettere una regola del genere?
    Grazie

    • Buongiorno,
      sono lieto che l’articolo ti sia risultato utile.

      Non mi è chiaro da quanto scrivi se ti occorre fare redirect 301 di tutte le URL della directory verso la homepage (tipico redirect many to one) oppure se devi fare redirect verso la risorsa equivalente senza la directory.

      In entrambi i casi è consigliabile implementare direttive RedirectMatch. A titolo esemplificativo, potresti provare qualcosa del genere:

      RedirectMatch 301 ^/2016/$ http://miosito.it/

      Naturalmente ti consiglio di provare in un’area di test, per verificare che funzioni.
      Buon lavoro!

  • Ciao Valentino cosa mi suggerisci per fare le cose in modo corretto senza perdere lato seo. Stiamo facendo un restyling di un sito e ci è stato chiesto di implementare il blog direttamente dentro al dominio principale con struttura dominio.com/blog. Prima era blog.dominio.com. Abbiamo migrato tutti gli articoli su dominio.com/blog. Il nuovo sito non è ancora online e quindi non abbiamo penalizzazioni da google al momento. Una volta finito il sito, il vecchio lo possiamo cancellare o deve rimanere online? Grazie mille.

    • Buongiorno Salvo,
      partiamo dal presupposto che la migrazione di per se non comporta alcuna penalizzazione, ma sono i cambiamenti tecnici apportati al sito che se non gestiti in maniera corretta possono provocare la perdita di traffico organico.
      Venendo ora alla tua richiesta, se la migrazione è stata gestita in maniera corretta e tutti i redirect 301 sono stati implementati come scrivi, potete tranquillamente eliminare il sottodominio. Del resto se lo lasciate online rischiate una penalizzazione per contenuti duplicati.
      In bocca al lupo!

  • Ciao Valentino, innanzitutto mille grazie per i tuoi scritti, son davvero molto utili per chi come me appassionato da anni, si sta avvicinando al mondo della SEO. Volevo a tal punto chiederti un informazione: ho il sito della mia attività, per motivi burocratici sono costretto a spostare il sito intero cambiando il dominio ad esempio Dominio.com su Nuovodominio.com. Ho modificato un pò la grafica e reso soprattutto responsive il sito.

    La struttura delle pagine è rimasta la medesima, ho soltanto aggiunto qualche nuova pagina ma magari con l’ottimizzazione on-site riuscirò col tempo a far salire la pagina. Ora non voglio perdere il traffico finora ottenuto anche poichè è il mio veicolo e vetrina online (di prodotti di falegnameria), a tuo avviso occorre inserire un htaccess nel vecchio dominio con la regola:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://www.nuovodominio.com/$1 [R=301,L]

    Oppure per ogni singola pagina (anche se fondamentalmente invariata dal punto di vista della struttura e nuova solo per grafica)?

    Dopo occorre segnalar a Google dalla Search Console questa modifica? Considera che ho attivato una nuova mail e vorrei gestir la console con la nuova mail eliminando la vecchia, è semplice il passaggio? Molte Grazie

    • Buongiorno Emiliano,
      in merito alla prima domanda che poni, se come scrivi la struttura delle URL è completamente invariata, è sufficiente inserire la regola specificata nel paragrafo “Redirect 301 htaccess intero sito” e che tu ripeti nel commento.

      In merito alla seconda richiesta, puoi leggere la Guida a Google Search Console, dove nel paragrafo “Cambio indirizzo” è spiegato tutto ciò che ti occorre.

      Buon lavoro!

  • Buongiorno, io ho un problema con un sito, ho creato il file htaccess per reindirizzare tutte le URL con .html finale verso URL senza html. Ad esempio:

    www.dominio.it/url.html deve diventare www.dominio.it/url

    Ho usato questa regola e funziona in parte:

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ (/[^\ ]+)\.html\  [NC]
    RewriteRule ^ %1 [L,R=301]

    Le URL che presentano trattini come ad esempio:

    www.dominio.it/url-url.html

    rimangono invariate.

    Sbaglio qualcosa nella regola?

    Grazie e buona giornata

    • Buongiorno Simona,
      a titolo di suggerimento, ritengo che l’errore sia nella regola RewriteRule.

      In ogni caso per poter rispondere al tuo quesito e implementare correttamente i redirect 301, occorre conoscere tutto il contenuto del file htaccess per verificare le altre regole che racchiude e che potrebbero andare in conflitto con quelle che hai inserito.

      Buon lavoro!

  • Buonasera,
    ti ringrazio per questa guida, e vorrei sapere cosa ne pensi di questa complicazione in cui mi sono imbattuta proprio operando un Redirect 301 htaccess intero sito, così come tu descrivi.
    Ho notato usando Majestic e anche Semrush, che il redirect viene registrato come un backlink e a mio avviso si incappa in qualche complicazione, infatti:
    majestic me lo da come backlink privo di anchor text, (e capisce che si tratta di un redirect), mentre semrush mi segnava questo backlink come “toxic” nonostante il sito da cui parte il redirect sia sempre stato sano e quindi mi domando se non sia un problema operare questo redirect senza inserire un anchor text come si fa in genere con i link. Che ne pensi?
    Grazie per la risposta

    • Buongiorno Lorenza,
      non mi è chiaro cosa intendi quando scrivi “operare questo redirect senza inserire un anchor text come si fa in genere con i link”, forse stai facendo confusione sull’argomento.

      Effettuare un redirect da un dominio all’altro di per sé non provoca alcuna complicazione. Le complicazioni si verificano quando si gestiscono le migrazioni senza avere le competenze tecniche e strategiche per farlo.

      Quindi se la migrazione SEO è stata gestita correttamente e non è stato perso traffico, continuerei a monitorare senza preoccuparmi ulteriormente in tal senso.

      In merito a Semrush, il tool Backlink Audit è in beta e non gli darei molto credito. In ogni caso occorre analizzare il caso concreto per poter rispondere alla tua richiesta.

      Buon lavoro!

  • Buongiorno,
    ho fatto una migrazione di dominio e ho impostato sul sito vecchio il file htaccess con il redirect 301 link per link.
    Purtroppo in alcuni casi il redirect non funziona, sai spiegarmi perché?
    Ti faccio un esempio. Sul sito Vecchiodominio.com c’è il seguente file htaccess:

    # Inizio .htaccess
    RewriteEngine On
    RewriteBase /
    Redirect 301 /bacche-goji-biologiche/ http://www.nuovodominio.com/alimentazione/bacche-goji-biologiche/
    

    però se digito l’indirizzo:

    http://www.vecchiodominio.com/bacche-goji-biologiche/
    va in 404 su
    http://www.nuovodominio.com/bacche-goji-biologiche/

    in cosa sbaglio?

    Grazie

    • Buongiorno Mirco,
      non mi è chiaro se hai migrato un intero sito verso un nuovo dominio, oppure se ti interessa reindirizzare soltanto una URL del vecchio dominio verso il nuovo dominio:

      1. Nel 1° caso è consigliabile utilizzare la sintassi presente nel paragrafo “Redirect 301 htaccess intero sito”
      2. Nel 2° caso non vedo errori nella sintassi e dovrebbe funzionare tutto correttamente. Probabilmente ti basta svuotare la cache del browser.

      Buon lavoro!

  • Ciao Valentino e grazie dei consigli. Avrei bisogno di chiederti un’informazione: dopo che imposto i redirect dal vecchio al nuovo dominio e dopo che segnalo a Google, dalla Search Console, che ho cambiato dominio…cosa faccio con il dominio vecchio e tutti i suoi contenuti? Devo sempre lasciarli online affinché il redirect funzioni oppure posso eliminare tutto lasciando solo l’htaccess che è quello che da le indicazioni? Grazie!

    • Ciao Mauro,
      da quello che scrivi, ritengo che sia sufficiente lasciare il file htaccess con le regole relative ai redirect 301 mentre il resto lo puoi tranquillamente eliminare. Prima di procedere è consigliabile sempre conservarsi un backup per ripristinare lo stato precedente in caso di problemi. Buon lavoro!

  • Ciao, lavoro per una community noprofit che ha acquistato un nuovo gtld e vorrebbe “riunire” tutti i siti sparsi nel mondo che dovrebbero far parte della community.
    Il problema principale è che il servizio di hosting sarebbe meglio rimanesse quello vecchio per ognuno di essi.
    Quali sono le linee guida secondo te per come muoversi in una situazione del genere?

    • Ciao Stefano,
      dal punto di vista dei redirect 301, questi possono essere effettuati sia dallo stesso server che da altri hosting. Mentre le linee guida relative ad una migrazione di molteplici siti sono molto numerose e specifiche in base al singolo caso, dove bisogna valutare attentamente sia fattori on-site che off-site per non arrecare danni al traffico. Per maggiori informazioni puoi leggere la pagina relativa alla migrazione di un sito lato SEO.

  • Ciao Valentino, io ho in giro per il web un sacco di link riferiti al vecchio dominio claudiagalli.it che ho tentuto e su cui ho fatto il redirect al nuovo claudiagalli.net. Quando clicco appunto su uno di questi vecchi link mi manda sì al nuovo sito ma con il 404. Vorrei evitare il 404. Devo reindirizzate tutti i link uno a uno? Ho fatto una prova, ma non funziona… Nel .htaccess del vecchio dominio ho inerito questo:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://claudiagalli.net/$1 [R=301,L]
    Options +FollowSymLinks 
    RewriteEngine on 
    Redirect 301 /1/il_sogno_lucido_9641147.html http://www.claudiagalli.net/blog/

    Cosa sbaglio?

    Ti ringrazio anticipatamente per l’aiuto!

    Claudia

    • Ciao Claudia,
      in linea di massima rimandare backlink a pagine che erogano status code 404 non è corretto. Analizzando quanto scrivi, l’errore è nel fatto che la seconda sintassi va inserita nel file .htaccess del nuovo dominio e non del vecchio, come hai fatto tu. Sperando di esserti stato di aiuto, in bocca al lupo!

  • Io avevo il sito su https ma per via di alcune esigenze pubblicitarie ho scelto di portarlo su http. Ho già fatto tutto ma ho il problema dei backlink che puntanto al vecchio url https.
    Ho provato decine di codici su htaccess ma niente. Il redirect 301 da HTTPS a HTTP non funziona.
    Mi viene il dubbio che non sia possibile farlo.. Sapete aiutarmi?

    • Ciao Mauro,
      è possibile farlo, ma dipende da molteplici aspetti, tra cui:

      1. il contenuto del file htaccess;
      2. se si tratta di un hosting condiviso;
      3. se hai ancora il certificato di sicurezza o meno;
      4. ecc.

      Quindi la questione non è immmediata e semplice da risolvere (ma penso che te ne sia già reso conto). In bocca al lupo!

  • Grazie Valentino per le indicazioni e i consigli.
    Nel nostro caso veniamo da una migrazione mal gestita di un sito ecommerce: nomeecommerce.com su piattaforma Spreecomemrce (ugh!) nato nel 2010-2011, a cui era stato agganciato, con buoni risultati, un blog in: nomewpblog.nomeecommerce.com
    E’ successo che nella migrazione verso un ecommerce con piattaforma WP+WOOcommerce meglio gestibile che con quella SpreeCommerce, si è passati ad unico dominio: ecommerce.com e la parte blog è diventata quindi nativa e coerente.
    Problema? Il sito ha dei problemi di visibilità su Google, e ad indicatore dei problemi il fatto che il monitoraggio sulle keywords dei post del blog by Google Alert non segnala più la pubblicazione dei post.
    Tornando al tema del redirect 301 la domanda è questa: i vecchi backlinks che puntavano ad un vecchio path (e potrebbero essercene in giro vari, il problema è collezionarli tutti) possiamo ancora recuperarli agli occhi di Google con una corretta gestione del 301 oppure, dovremmo redirigerli uno ad uno, oppure ancora dobbiamo darli per persi non avendolo fatto tempestivamente all’atto della migrazione?
    Grazie
    Francesco

    • Buongiorno Francesco,
      in questo caso occorre fare principalmente 3 considerazioni:

      1. le precedenti URL portavano traffico al sito? Se la risposta è positiva prima di pensare ai backlink è necessario concentrarsi su questo aspetto per individuare la perdita e recuperare il traffico peduto.
      2. che tipo di traffico (direct, referral, ecc.)? In base alla risposta le decisioni in merito cambiano di molto.
      3. quali di questi backlinks conviene recuperare? Per dare risposta a questa domanda occorre creare una link profile completa (recuperando tutti i backlinks) e poi svolgere una link pruning (analisi dei backlinks).

      Da punto di vista tecnico una volta implementati i redirect recuperi naturalmente anche i backlinks. In base alla quantità di redirect e ai topic di ogni singola risorsa bisognerà poi valutare se creare regole di reindirizzamento (che consentono di reindirizzare più URL contemporaneamente) oppure se reindirizzare singolarmente le URL.

      Il vostro caso, ti renderai conto, è piuttosto complesso da rispondere in un commento. Ci sono tutta una serie di analisi (piuttosto complesse) e considerazioni da fare per darti le risposte che cerchi. Ritengo che nel vostro caso rivolgersi ad un professionista, che sia io o qualcun altro, è la scelta più efficace. Spero di esserti stato comunque utile. In bocca al lupo!

      • Grazie Valentino, sì in effetti è complesso rispondere esaustivamente in un post, direi che ci sentiamo settimana prossima per valutare un audit. Grazie ancora. Francesco

  • Ciao, io sto allestendo un e-commerce con wordpress/woocommerce e desidererei usare il protocollo HTTPS, volendo redirigere tutto il traffico verso le pagine, sia quelle attuali che quelle future, verso il protocollo HTTPS secondo te va bene una regola de genere?

    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://www.dominio.com/$1 [R,L]
    

    Se no come la potrei correggere? Il sito è in costruzione quindi non ha bisogno dei redirect che ho letto nell’articolo.
    Ciao e grazie

    • Ciao Lorenzo,
      la regola che hai indicato per effettuare un redirect 301 da http verso https è sostanzialmente corretta, quindi dovrebbe funzionare. Potresti specificarla ulteriormente trattandosi di un reindirizzamento permanente sostituento [R,L] con [R=301,L]. Buon lavoro!

  • Ciao Valentino,

    ti ringrazio per questo utilissimo articolo! avrei però una domanda:
    ho realizzato un nuovo sito modificando nel contempo il dominio. In questo caso quindi dovrei non solo fare un redirect da un dominio all’altro ma indicare anche le nuove url del nuovo sito.
    Posso usare questo codice?

    Options +FollowSymLinks 
    RewriteEngine on 
    Redirect 301 /vecchio sito.com/vecchio-url1 http://www.dominio.it/nuovo-url1
    Redirect 301 /vecchio sito.com/vecchio-url2 http://www.dominio.it/nuovo-url2
    

    ed indicare il redirect per ogni pagina?

    Grazie mille!

    • Ciao Francesco,
      ti confermo che bisogna implementare prima il redirect dal vecchio dominio verso il nuovo dominio e poi in seguito, nel file .htaccess del nuovo dominio, implementare i redirect dalle precedenti URL verso le nuove URL. Il codice che hai scritto però non è corretto, trovi quello giusto nel paragrafo “Redirect 301 htaccess singolo URL” di questo articolo. Buon lavoro!

      • Ciao, anche io sto pianificando lo spostamento un sito da un dominio all’altro, quindi ho bisogno di essere certa di alcuni passaggi. Se ho ben capito:

        1. nel .htaccess del vecchio dominio devo indicare:

        Options +FollowSymLinks 
        RewriteEngine on 
        RewriteRule (.*) http://www.nuovodominio.com/$1 [R=301,L]
        

        in modo tale che ogni accesso al vecchio dominio, indipendentemente dalla pagina, venga reindirizzato al nuovo dominio, un questo modo tutti gli accessi del vecchio dominio atterrano sul nuovo

        2. mentre nel .htaccess del nuovo dominio devo mettere, per ogni pagina qualcosa del tipo:

        Options +FollowSymLinks 
        RewriteEngine on 
        Redirect 301 /vecchiodominio.it/pag1 http://www.dominio.it/pag1.html
        Redirect 301 /vecchiodominio.it/pag2 http://www.dominio.it/pag2.html
        

        andando avanti così per ogni url?

        Io avrei bisogno di reindirizzare ogni pagina del tipo vecchiodominio.it/page1 su nuovodominio.it/page1, poichè sto facendo proprio un cambio di dominio.
        Ho inoltre un’altra domanda da fare, scusa ma non ho mai fatto questa cosa, il file htaccess è un unico file per tutto il sito vero? E’ associato al dominio o all’hosting? Nel senso questi reindirizzamenti posso farli rinnovando solo il dominio o devo necessariamentente rinnovare anche l’hosting?

        • Ciao,
          perdonami se approvo solo ora il tuo commento. Provo a rispondere a tutti i tuoi dubbi sui redirect 301 tramite file htaccess. Tieni presente che ogni hosting ha regole precise e quindi quello che scrivo potrebbe non essere corretto in assoluto.

          In merito al primo punto è tutto corretto, hai ben compreso l’articolo.

          In merito al secondo punto non necessariamente devi inserire la sintassi per i redirect 301: ad esempio se il sito è identico e/o presenta le medesime URL del vecchio dominio, non c’è bisogno. Se invece le URL sono differenti occorre inserire le direttive di reindirizzamento, che possono essere implementate una per volta tramite direttive Redirect (solo se sono poche URL) oppure tramite direttive RedirectMatch che permettono di utilizzare espressioni regolari (nel caso di reindirizzamenti molteplici).

          In merito al file htaccess, questo file è presente nella root principale del tuo hosting il quale a sua volta è associato ad un dominio che punta ad esso (ogni dominio per essere visibile deve puntare ad un hosting). Quindi se il vecchio dominio punta al vecchio hosting devi rinnovare anche l’hosting altrimenti potresti far puntare il vecchio dominio al nuovo hosting e non devi rinnovare il vecchio hosting (perdonami il gioco di parole).

          Spero di esserti stato utile. In bocca al lupo!

        • Ciao Valentino,
          grazie per le preziose info. Devo anch’io migrare il sito da oldsito.it ad newsito.bio quindi sul sito old metto:

          Options +FollowSymLinks 
          RewriteEngine on 
          RewriteRule (.*) http://www.newsito.bio/$1 [R=301,L]

          devo mettere accorgimenti per il fatto che il sito old è senza www?

          Poi per quanto riguarda i redirect 301, sul sito new dovrei gestirne più di 700, sono tutti prodotti che sul sito old hanno questi link:

          http://oldsito.it/index.php?main_page=product_info&cPath=86&products_id=677
          http://oldsito.it/index.php?main_page=product_info&cPath=101&products_id=701
          ecc.

          la parte comune è:

          index.php?main_page=product_info&cPath=

          e questi sono i nuovi link a cui devono puntare:

          https://www.newsito.bio/ecobioemporio/futon-per-lettino-puro-cotone-e-cocco-60x120-h10-cm/
          https://www.newsito.bio/ecobioemporio/lampada-maya-ape-con-lampadina-led-in-omaggio-kubedesign/

          Come posso creare l’htacces per il sito new? L’esempio sotto so che non funziona perché sono tutte URL parametriche con query:

          Options +FollowSymLinks 
          RewriteEngine on 
          Redirect 301 /index.php?main_page=product_info&cPath=86&products_id=677 https://www.newsito.bio/ecobioemporio/futon-per-lettino-puro-cotone-e-cocco-60x120-h10-cm/
          Redirect 301 /index.php?main_page=product_info&cPath=101&products_id=701 https://www.newsito.bio/ecobioemporio/lampada-maya-ape-con-lampadina-led-in-omaggio-kubedesign/

          PS: ultima cosa, anche se sono fuori argomento, cosa mi consigli per la lunghezza delle URL, so che i motori di ricerca non hanno problemi a gestirle, ma sembra che siano più friendly (per le persone) le URL corte.

          Fra questa che riporta le categorie del prodotto, quindi più dettagliata:

          https://www.newsito.bio/ecobioemporio/detersivi-prodotti-pulenti/pulizia-della-casa/ricambi-per-spazzola-adesiva-per-abiti-e-tessuti-2-pezzi/

          e questa con solo il prodotto:

          https://www.newsito.bio/ecobioemporio/ricambi-per-spazzola-adesiva-per-abiti-e-tessuti-2-pezzi/

          cosa ne pensi?

          Ciao e grazie.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright © 2013 - 2023 · Valentino Mea Srls rating 5.0/5 su 22 recensioni · C.F. / P.iva: 04373930611 · Privacy Policy · Cookie Policy · Sitemap · All rights reserved