verwendete Web-Technologie: ASP.NET
Hallo,
ich habe ein (vielleicht) recht triviales Problem. Ich möchte eine Site gerne für verschiedene Sprachen unter verschiedenen URL's veröffentlichen, also sowas wie
www.yyy.com/DE/index.aspx für DE und
www.yyy.com/EN/index.aspx für EN
Es soll natürlich jeweils die gleiche index.aspx aufgerufen werden, aber vorher anhand von "DE" und "EN" ein Wert in die Session geschrieben werden. Außerdem müssten natürlich alle Links innerhalb der Seite ebenfalls auf eine URL mit "EN" bzw. "DE" verweisen.
Kann mir jemand einen Hinweis geben wie das am einfachsten zu bewerkstelligen ist?
Vielen Dank
Hallo,
könntest Du nicht einfach mehrere virtuelle Verzeichnisse im IIS machen, die auf das selbe physikalische Verzeichnis zeigen?
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hi,
welche Frameworkversion benutzt du?
Mit .net 4 hast du die Möglichekeit das über UrlRouting zu machen...
Danke für die Antworten.
@MarsStein: Was die virtuellen Verzeichnisse im IIS angeht: teilen die sich denn dann auch die gleiche Session? Wenn ein Benutzer von einer Sprache zur anderen wechselt (und somit von einer URL zur nächsten) dann soll natürlich seine Session erhalten bleiben.
@M@TUK: "leider" verwende ich 3.5
huhu,
zu den Virtuellen Verzeichnissen Es sind dann "verschiedene" Anwendungen - deswegen haben die unterschiedliche Sessions.
Per web.config lässt sich das mit URL-Mappings lösen:
<urlMappings enabled="true">
<add url="~/DE/index.aspx" mappedUrl="~/Index.aspx"/>
<add url="~/EN/Index.aspx" mappedUrl="~/Index.aspx"/>
</urlMappings>
Wird bei vielen Seiten aber auch entsprechend viel. Alternativ kannst du in der global.asax auch in Application_AcquireRequestState den Pfad überprüfen und entsprechend handeln.
Bin aber gerade über nen älteren Artikel von Scott Guthrie gestolpert Url Rewriting with ASP.NET gestossen. Da gibts auch nochmal einige Überlegungen/Lösungen zu dem Thema.
Persönlich würde ich das über Sub-Domains lösen:
de.example.com/index.aspx für DE und
en.yyy.com/index.aspx für EN
das macht es etwas leichter die "Sprache" zu finden ohne, die Seitenstruktur zu ändern. Zusätzlich lässt sich eine "neue" Sprache einfach durch eine neue Subdomain einrichten.
😃
Xynratron
Herr, schmeiss Hirn vom Himmel - Autsch!
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
Persönlich würde ich das über Sub-Domains lösen:
de.example.com/index.aspx für DE und
en.yyy.com/index.aspx für EN
Dem stimme ich zu.
Alternativ die selektierte Sprache in nem Cookie speichern und diesen abfragen - beim ersten Besuch die Sprache des Besuchs auslesen oder via IP-Geolocation arbeiten.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code