Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  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
    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?

  3. #3
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.