Laden...

URL-Rewriting bei ASP.NET

Erstellt von amorph vor 13 Jahren Letzter Beitrag vor 13 Jahren 9.538 Views
A
amorph Themenstarter:in
26 Beiträge seit 2006
vor 13 Jahren
URL-Rewriting bei ASP.NET

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

3.170 Beiträge seit 2006
vor 13 Jahren

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

M
402 Beiträge seit 2005
vor 13 Jahren

Hi,

welche Frameworkversion benutzt du?

Mit .net 4 hast du die Möglichekeit das über UrlRouting zu machen...

URL Routing with ASP.NET 4 Web Forms

A
amorph Themenstarter:in
26 Beiträge seit 2006
vor 13 Jahren

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

X
1.177 Beiträge seit 2006
vor 13 Jahren

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.

16.807 Beiträge seit 2008
vor 13 Jahren

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.