Frage zu Rewrite
fr33styler
- php
Hi,
ich hab ne Frage zu rewrite:
mein Problem:
* ich hab eine Seite die ist Sprachvariabel...
* die 13 Sprachvariablen "language=de", "langage=it" usw. werden auf einer "Startseite in nem Unterverzeichniss" (/start/de/start.php) mitgegeben nach "(root)/index.php?language=de" und als Cookie gespeichert, was auch gut funzt!
(je nach Sprache ein anderes Unterverzeichniss)
nicht so ist es bei Google & Co. -> d.h. Google hat nur die 1ste Seite (index.php?language=de") in der entsprechenden Sprache.. danach (beim weiterklicken ohne Cookies) wird die default Sprache "english" sichtbar und somit indiziert er die page "bis auf die 1ste Seite" nur in englisch.
Ich denke ich kann das mit Rewrite lösen.. aber steig da noch nicht ganz durch :/
Wenn ich jetzt die Variable "language=xx" mitgeben möchte...
a) wenn in der url noch nichts steht als "?language=xx"
b) wenn schon was abgefragt wird als "&language=xx"
wie lös ich das mit Rewrite und in einer .htaccess?
RewriteEngine On
RewriteBase /
RewriteRule ???????????? ?language=$1 [QSA]
RewriteRule ???????????? &language=$1 [QSA]
Und funktioniert das für Googlebot & Co.?
Ich hoff ihr könnt mir hier weiterhelfen.
Danke schön
Link:
DE Startseite: www.ziehl-abegg.de (root)/start/de/start.php
nach klick gehts dann hier hin -> www.ziehl-abegg.com/index.php=language=de (root)/index.php?language=de
Gruß Ralf
hi,
* ich hab eine Seite die ist Sprachvariabel...
* die 13 Sprachvariablen "language=de", "langage=it" usw. werden auf einer "Startseite in nem Unterverzeichniss" (/start/de/start.php) mitgegeben nach "(root)/index.php?language=de" und als Cookie gespeichert, was auch gut funzt!
nicht so ist es bei Google & Co. -> d.h. Google hat nur die 1ste Seite (index.php?language=de") in der entsprechenden Sprache.. danach (beim weiterklicken ohne Cookies) wird die default Sprache "english" sichtbar und somit indiziert er die page "bis auf die 1ste Seite" nur in englisch.
Huch, ein Benutzer, der keine Cookies akzeptieren mag.
Du hast also einen Fehler in deinem Konzept - komisch, dass der dir _jetzt erst_ auffällt.
Ich denke ich kann das mit Rewrite lösen..
Ich würde eher sagen, überlege dir einen vernünftigen Fallback für den Fall, dass der Nutzer/Client keine Cookies akzeptiert - um nicht nur google eine "funzende" Seite anzubieten, sondern auch den menschlichen Nutzern.
Also beispielsweise analog zur Implementation der SID-Übergabe beim Session-Mechanismus von PHP vorgehen - wenn Übergabe des Wertes per Cookie "nicht gefunzt" hat, dann (weiterhin) Übergabe per GEt bei allen site-internen Links.
gruß,
wahsaga
Hi wahsaga,
Du hast also einen Fehler in deinem Konzept - komisch, dass der dir _jetzt erst_ auffällt.
geb ich dir recht... es war halt unser 1ste großes projekt... und wir sind ja auch am lernen - aber das ist kurzfristig leider nur mit cookies lösbar
Also beispielsweise analog zur Implementation der SID-Übergabe beim Session-Mechanismus von PHP vorgehen - wenn Übergabe des Wertes per Cookie "nicht gefunzt" hat, dann (weiterhin) Übergabe per GEt bei allen site-internen Links.
somit muss man ja die SID immer im browser übergeben... das wollten wir nicht zwecks den benutzerdaten.
Grüße
Ralf
hallo,
Ich denke ich kann das mit Rewrite lösen
Das ist eher eine klassische Aufgabe für Content Negotiation.
Grüße aus Berlin
Christoph S.
Ich denke ich kann das mit Rewrite lösen
Das ist eher eine klassische Aufgabe für Content Negotiation.
Hi Christoph,
Dank für deine Antwort.. aber ich glaub da haben wir ein Problem, da wir z.b. für
UK -> language=en
-> $_SESSION['nation'] = en
-> $_GET['language'] = en
US -> language=us
-> $_SESSION['nation'] = us
-> $_GET['language'] = en
AU -> language=au
-> $_SESSION['nation'] = au
-> $_GET['language'] = en
etc. haben, da wir nach Länder & Sprache unterscheiden mussten (Länder & Sprachabhängige Inhalte)
oder hättest du n Vorschlag, wie das mit Content Negotiation trotzdem zu lösen ist?
Grüße
Ralf
Moin!
* die 13 Sprachvariablen "language=de", "langage=it" usw. werden auf einer "Startseite in nem Unterverzeichniss" (/start/de/start.php) mitgegeben nach "(root)/index.php?language=de" und als Cookie gespeichert, was auch gut funzt!
(je nach Sprache ein anderes Unterverzeichniss)
Ich sehe nirgendwo, dass die Sprache in einem Unterverzeichnis steht?
Weder gibt es einen URL-Bestandteil "/start/de/start.php", noch taucht sonst irgendwo die Sprache in einem Unterverzeichnis auf.
Schlimmer noch: Wenn ich auf der rechten Seite von Deutsch auf International oder eine andere Sprache umstelle, erhalte ich die gleiche Seite, die vorher mit "?language=de" ausgeliefert wurde, zwar in einer anderen Sprache, aber immer noch mit "?language=de".
Link:
DE Startseite: www.ziehl-abegg.de (root)/start/de/start.php
Da ist nur eine deutsche Startseite. Sollte es hier nicht lieber schon eine Sprachauswahl geben?
PS: Dein Augenpuder unter der Grafik soll wohl "optimized for irgendwas" heißen. Aber ganz ernsthaft: Ich kann das schon kaum noch lesen, die Schrift ist einfach zu winzig. Dasselbe Problem haben die vier Buttons oben rechts, die in extrem mieser Schärfe wohl sowas wie AGB und Sitemap sein sollen. Da klickt niemand freiwillig drauf, zumal die Frage zu beantworten ist, warum AGB zweimal auftritt.
nach klick gehts dann hier hin -> www.ziehl-abegg.com/index.php=language=de (root)/index.php?language=de
Das ist schon falsch. Die dumme Startseite mit dem Bild würde ich komplett weglassen, und direkt auf eine sprachabhängige Startseite gehen. Die URL dieser Startseite muß "/de/" oder "/de/index.php" lauten. Die jetzige Bildstartseite sollte einen Mechanismus erhalten, welche eine automatische Weiterleitung zu einer Sprachstartseite enthält, basierend auf der bevorzugten Sprache, die der Benutzer in seinem Browser eingestellt hat.
Und die erscheinende Seite sollte einen offensichtlicheren Mechanismus zum Umschalten der Sprache haben. Man verbindet ein Land nicht unbedingt mit einer Sprache. Bei "Englisch" hat man sehr viele Länder aufzulisten (abgesehen von den restlichen Ländern, deren Bewohner zusätzlich auch noch Englisch sprechen können), beim Land "Belgien" hilft einem das noch weniger, weil es dort drei Amtssprachen gibt, Niederländisch, Französisch und Deutsch.
Die Auswahl einer Spracherzeichnisses muß dann über die gesamte Zeit, die der Besucher in dieser Sprache verbleibt, immer Bestandteil der URL sein.
- Sven Rautenberg