Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    multilingua e url rewriting

    per quanto riguarda il SEO, sento tutti parlare di comprare un dominio per ogni lingua, di creare sottocartelle, oppure sottodomini per ogni lingua.

    questo però comporta la "copia" dell'intero sito per ogni lingua, quindi con "n" lingue aumenta di "n" volte il tempo per fare modifiche ad un sito web.

    con asp.net è possibile usare lo stesso file ma mettere il contenuto in un file resources.

    A livello di manutenibilità è molto comodo ma le url poi diventano tutte uguali per tutte le lingue e questo non è buono per il seo.

    C'è qualche tecnica diffusa per farlo con url rewriting?
    Callisto Software Web Design, Web Marketing, Sviluppo Software, Consulenza IT

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    Fare copie dei siti è una pratica da evitare.
    Creare un url rewriting per un sito multilingua non è proprio semplice e immediato e in un forum non si può spiegare in quanto lungo e complesso.
    I got the remedy

  3. #3
    Quando l'ho dovuto fare io, l'ho fatto dal global.asax, sull'evento Application_BeginRequest utilizzando l'istruzione Context.RewritePath.
    E' un pò scomodo, perché devi gestire tutte le casistiche, e ho letto che alcuni IIS danno problemi con questo metodo (fanno scattare il 404 se la pagina non esiste).

    Avevo letto un articolo sul rewriting se lo ritrovo lo posto.

  4. #4
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    Originariamente inviato da SeraphimFoA
    Quando l'ho dovuto fare io, l'ho fatto dal global.asax, sull'evento Application_BeginRequest utilizzando l'istruzione Context.RewritePath.
    E' un pò scomodo, perché devi gestire tutte le casistiche, e ho letto che alcuni IIS danno problemi con questo metodo (fanno scattare il 404 se la pagina non esiste).

    Avevo letto un articolo sul rewriting se lo ritrovo lo posto.
    è vero, asp.net permette di utilizzare i resources
    ma per i dati provenienti da database, tipo le categorie come faresti?
    e per i commenti degli utenti?

    a volte il copia di un sito ti salva da casistiche
    ovviametne dipendde da cosa devi faer
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  5. #5
    per ora parlo di un sito istituzionale, con pochi contenuti dinamici.

    il problema è che non trovo da nessuna parte una "best practice", ognuno per risolvere lo stesso problema usa un sistema diverso.
    Callisto Software Web Design, Web Marketing, Sviluppo Software, Consulenza IT

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    34
    Salve a tutti, mi trovo nella stessa situazione, qualcuno ha risolto? vi descrivo lo scenario e propongo la mia idea, anche se non so se è realizzabile: sito multilingua, masterpage con i link ad ogni lingua, sul click richiamo un metodo (uno per ogni lingua) della classe MasterPage che setta la variabile di sessione Session("Culture")con la cultura relativa al click

    codice:
        Protected Sub linkIta_Click(sender As Object, e As EventArgs)        Session("Culture") = New CultureInfo("it-IT")
            Session("UICulture") = New CultureInfo("it-IT")
    
    
            Server.Transfer(Request.Path)
        End Sub
    Ho creato una classe che eredita dalla classe Page dove riscrivo il metodo InitializeCulture() in modo che setti la sessione ad inglese nel caso non sia settata e applichi la cultura nella sessione.

    codice:
        Protected Overrides Sub InitializeCulture()        Dim c As CultureInfo
            If Session("Culture") IsNot Nothing Then
                c = DirectCast(Session("Culture"), CultureInfo)
            Else
                c = New CultureInfo("en-US")
            End If
    
    
            Thread.CurrentThread.CurrentCulture = c
    
    
            If Session("UICulture") IsNot Nothing Then
                c = DirectCast(Session("UICulture"), CultureInfo)
            Else
                c = New CultureInfo("en-US")
            End If
    
    
            Thread.CurrentThread.CurrentUICulture = c
            MyBase.InitializeCulture()
        End Sub
    In questo modo si verifica il problema per cui è stato aperto questo post, una chiamata all'indirizzo www.miosito.it/pagina1.aspx può reindirizzare ad una pagina in tutte le lingue.

    Ho pensato di risolvere cosi, prendiamo un'esempio:

    - richiesta dell'indirizzo www.miosito.it/pagina1.aspx

    vorrei intercettare la chiamata e sostituire l'url con questo

    www.miosito.it/LinguaNellaSessione/pagina1.aspx

    altro esempio:

    - richiesta dell'indirizzo www.miosito.it

    potrebbe diventare

    www.miosito.it/LinguaNellaSessione/

    in questo modo alla stessa pagina ci si può accedere con percorsi diversi a seconda della lingua, facili da indicizzare.

    Che ne dite?

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    riapri. e' un thread molto vecchio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.