• User

    Redirect dominio a sottocartelle

    Ciao a tutti.

    Mi affido alla vostra esperienza.

    Ho strutturato un sito pensando di organizzarne il contenuto nelle diverse lingue per sottocartelle.

    www * dominio * com / en / -> contiene la home di WordPress in inglese.

    www * dominio * com / it / -> contiene la home di WordPress in italiano.

    Chi dovesse approdare sul semplice nome di dominio non vedrebbe nulla.

    Invece di indicargli un menu di link nelle diverse lingue, avevo pensato a un file htaccess che controlla la lingua principale del browser e reindirizza alla specifica sottocartella corrispondente al sito nella specifica lingua, ad esempio ... / it / -> sito in italiano, e in tutti gli altri casi a ... / en / -> sito in inglese.

    Il tutto senza influenzare chi ha il browser impostato a "en", ma vuole digitare e navigare il sito ... / it / in lingua italiana. Nel senso che il discorso varrebbe solo per chi digita il semplice nome di dominio o una sottocartella inesistente (vale la stessa regola, home della lingua del browser o home inglese se non esiste la sottocartella della lingua specifica).

    Spero di essermi spiegato.

    Vi sembra una soluzione sensata? Avete alternative da suggerire?

    Domandate pure in caso di dubbi.

    Ringrazio tutti in anticipo.

    🙂


  • Moderatore

    Ciao falcon2600,
    @falcon2600 said:

    Vi sembra una soluzione sensata? Avete alternative da suggerire?
    Non è l'approccio che preferisco, tuttavia se intendi adottarlo devi tenere a mente un po' di cose (qualora ti fossero già chiare, spero almeno possano servire ad altri):

    • devi poter gestire il caso anche utenti che non hanno impostato la lingua di default (header http accept-language), primi fra tutti googlebot e bingbot
    • il redirect per lingua deve essere un HTTP 302, non un HTTP 301.
      Questo per diversi motivi. Innanzi tutto i browser moderni mettono in cache i redirect e potresti causare confusione a un utente che la prima volta ti visita con una lingua del browser diversa dalla sua lingua nativa (è molto comune). Poi alcuni bot visitano possono visitare il sito con accept-language diversi (es. Yandex, Baidu).
    • così facendo stai imponendo un dazio - il tempo di un redirect - a tutti i tuoi utenti (bipedi e bot che siano), peggiorando il tempo di risposta e l'esperienza utente.

    Tornando al caso di client con lingua non impostata.
    Non è solo il caso di Googlebot e Bingbot, accade anche a utenti normali.
    Come intendi gestirli? Come per esempio desideri Googlebot ti visiti?

    Il tuo caso sembrerebbe lo scenario ideale per l'uso del meta tag <link rel="alternate" hreflang="..."
    Dove una pagina in root potrebbe esistere con hreflang="x-default":

    [HTML]<link rel="alternate" href="http * www * dominio * com/" hreflang="x-default" />
    <link rel="alternate" href="http * www * dominio * com/en/" hreflang="en" />
    <link rel="alternate" href="http * www * dominio * com/it/" hreflang="it" />
    [/HTML]

    Puoi anche decidere di reindirizzare gli utenti che esibiscono una lingua del browser (non sarebbe visto come sospetto da Google, grazie al rel="alternate", ma per i motivi sopra spiegati non sempre è la soluzione che offre migliore usabilità per tutti gli utenti. Potresti allieviare il disagio per gli utenti ricordandone la lingua precedentemente usata con un cookie.
    Lasciare la pagina di ingresso (con hreflang="x-default") per tutti, senza redirect, è un'altra soluzione. Anch'essa non la amo.

    L'approccio che preferisco è:
    Lasciare in root la lingua di default, quella che soddisfa la maggior parte dei miei utenti (se platea internazionale l'Inglese, se platea Italiana l'Italiano), e mettere in una sottocartella /it/ o /en/ solo i contenuti nell'altra/e lingua/e

    Così facendo ottengo diversi vantaggi:

    • i bot e la maggior parte dei miei utenti vedono la lingua che più mi preme senza l'onere di un redirect
    • la lingua che più mi preme sia indicizzata è vista con URL meno profondi e più brevi, seppur di soli tre caratteri
    • posso gestire con cookie la preferenza linguistica di utenti che vogliono visualizzare il sito con l'altra lingua, così che se richiedono root (non da navigazione interna) e hanno il cookie posso 302arli alla home di loro preferenza

    Spero d'esserti stato utile


  • User

    Molto esauriente e professionale.

    Grazie mille.

    🙂