Link in mehrsprachiger Version funktioniert nicht
Walter
- html
0 Walter
Hallo,
mein Problem
"Eigene Fehlerseiten ..."
ist geklärt.
In der Folge habe ich aber ein neues Problem, das mit dem alten wenig zu tun hat, daher dieser neue thread.
Ich habe es jetzt geschafft, meine Seiten(fragmente) zweisprachig zu gestalten. Je nach eingestellter Sprache kommt die deutsche oder die englische Version. Auch mein o.g. Problem mit mehrsprachigen Fehlermeldungen ist gelöst.
Jetzt wird aber empfohlen, dem Anwender zu ermöglichen, die Sprachversion explizit einzustellen.
Ich habe daher in der www.foo.com/de/index.shtml ein link auf www.foo.com/en/index.shtml gesetzt und umgekehrt (Link Version 1).
Wohl durch die Angaben in .htaccess und in den var-Dateien führt das Anklicken des links zu einem Fehler 404 (www.foo.com/en/index.shtml nicht vorhanden), obwohl die betr. Seiten vorhanden sind.
Ich habe versucht, dies in .htaccess über rewrite hinzubekommen, ohne Erfolg.
Dann habe ich eine Notlösung gefunden (mit de.var und en.var und Link Version 2), was mir aber noch aus folgendem Grunde nicht gefällt.
Wird www.foo.com aufgerufen, so wird in beiden Sprachversionen auch www.foo.com angezeigt,
wird aber dann über den link zu anderen Sprachversion verzweigt, wird angezeigt www.foo.com/de.var bzw. www.foo.com/en.var.
Gibt es eine elgantere Lösung, so dass immer nur www.foo.com angezeigt wird?
Hier das Coding - hoffentlich nicht zuviel!
.htaccess:
Options -Indexes
ErrorDocument 404 /fehler.var
Options -MultiViews
AddHandler type-map .var
DirectoryIndex index.var
index.var:
URI: index; vary="type,language"
URI: /de/index/index.shtml
Content-type: text/html; qs=1.0
Content-language: de
URI: /en/index/index.shtml
Content-type: text/html; qs=1.0
Content-language: en
fehler.var:
URI: fehler; vary="type,language"
URI: /de/fehler/index.shtml
Content-type: text/html; qs=1.0
Content-language: de
URI: /en/fehler/index.shtml
Content-type: text/html; qs=1.0
Content-language: en
de.var:
URI: de; vary="type,language"
URI: /de/index/index.shtml
Content-type: text/html; qs=1.0
Content-language: de en
en.var:
URI: en; vary="type,language"
URI: /en/index/index.shtml
Content-type: text/html; qs=1.0
Content-language: de en
de/index/index.shtml:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>Deutsche Seite</title></head>
<body>
<h1>Deutsche Startseite</h1>
<p>
<a href="/en/index.shtml"> <!-- ebenso: href="http://www.foo.com/en/index.shtml"> -->
Englische Version 1
</p>
<p>
<a href="http://www.foo.com/en.var">
Englische Version 2
</a>
</p>
</body>
</html>
de/index/index.shtml: analog in Englisch
de/fehler/index.shtml: Fehlermeldung in Deutsch
de/fehler/index.shtml: Fehlermeldung in Englisch
Hat sich erledigt,
meine Mitstreiter haben die Lösung!