SEO- und benutzerfreundliche URLs mit mod_rewrite

Snoopy
Beiträge: 79
Registriert: Di 30. Jun 2015, 14:02

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von Snoopy » Mo 24. Aug 2015, 15:59

Hallo shadowcat,

vielleicht löst sich der Knoten bei nochmaliger Betrachtung der Lösungsansätze, welche Du für Page.php bisher im Helper vorgesehen hattest.

Also z. B. meine zugeschickte Zip-Datei nehmen, die Varianten daraus mal mit ausgeschalteter Prüfung testen.
Vielleicht geht das, was wir bisher probierten, nur bei ausgeschalteter Prüfung - oder Du kommst dabei auf eine ganz andere Lösung.

Schade, dass ich nicht programmieren kann. :cry:
Ciao,
Snoopy

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Mo 24. Aug 2015, 16:18

Das ist jetzt eher ein Logikproblem als ein Programmierproblem.

Ausgangslage: Benutzer hat EN als seine Sprache gewählt, ist aber irgendwie auf eine Seite in anderer Sprache geraten. Was nun?

Frage 1: Das Menü passend zur aktuellen Seite _oder_ passend zu seiner ausgewählten Sprache anzeigen?

Logischer wäre es, das Menü passend zur aktuell angezeigten Seite anzuzeigen, da der Besucher ja den Kontext gewechselt hat. Gibt es für diese Seite aber keine Entsprechung in seiner bevorzugten Sprache, was dann? Wohin die Flagge verlinken? Oder Flagge gar nicht anzeigen, so wie es jetzt ist?

Wird aber das Menü passend zu seiner ausgewählten Sprache - hier also EN - angezeigt, ist vermutlich nicht nachvollziehbar, wo die aktuell angezeigte Seite in der Hierarchie angesiedelt ist.

Frage 2: Auswahl einer Seite in anderer Sprache = Wechsel der Sprache?

Wäre ebenfalls logisch, was aber nicht heißt, daß es auch das gewünschte Verhalten ist. Auch hier wieder: Gibt es keine verknüpften Seiten in anderen Sprachen, steckt der Besucher möglicherweise in der "falschen" Sprache fest.

Vielleicht ist das Dilemma jetzt etwas verständlicher. :mrgreen:
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Mo 24. Aug 2015, 16:43

Okay, ich habe es jetzt folgendermaßen implementiert...

Ausgangspunkt ist eine Seitenhierarchie wie diese:

en (versteckt)
|-- Welcome
|-- English page 2
de (versteckt)
|-- Willkommen
|-- Deutsche Seite 2

...usw.

Erster wichtiger Hinweis: SM2 (show_menu2) kommt nicht damit klar, wenn die Seiten auf der untersten Ebene versteckt sind. Das Menü ist dann leer. Die Menüfunktionen in BC 1.2 sollten damit klarkommen, das verifiziere ich noch.

Gibt der Besucher nun explizit eine Sprache an - etwa indem er eine über das Flaggensymbol verknüpfte Seite aufruft -, wechselt er den Sprachkontext. Die gewählte Sprache wird in der Session gespeichert. Anders gesagt, das passiert immer dann, wenn auf irgendeine Weise der Parameter lang=XY übergeben wird (das kann ein Link sein oder auch ein Formular).

Zweiter wichtiger Hinweis: Der Wechsel in eine andere Sprache ist nur möglich, wenn es auch wirklich Seiten in dieser Sprache gibt. Existieren keine, bleibt die global eingestellte Standardsprache die aktuelle Sprache. Ansonsten würde der Besucher in einer Sackgasse landen.

Gelangt selbiger Besucher nun auf eine Seite in einer anderen Sprache, OHNE dass der Parameter lang=XY übergeben wird - etwa über einen "internen Link" wie er in einer WYSIWYG-Sektion eingetragen wird -, bekommt er brav die Seite in der "falschen" Sprache angezeigt (keine Fehlermeldung mehr), er wechselt aber nicht den Kontext. Das heißt, seine eingestellte Sprache bleibt seine eingestellte Sprache. Er behält also auch das Menü passend zu seiner Sprache.

Möchte man mit einem internen Link explizit den Sprachkontext ändern, muß man (derzeit _manuell_) den Parameter lang=XY anhängen.

Ich denke, das ist die sinnvollste Umsetzung.

Letzter wichtiger Hinweis: Gibt es zu einer Seite keine verknüpfte Seite, wird künftig dennoch das Flaggensymbol angezeigt. Statt der verknüpften Seite wird aber auf die "Standardseite" der jeweiligen Sprache verlinkt, also üblicherweise die erste sichtbare Seite im Baum. Auf diese Weise kann der Besucher immer den Kontext wechseln, auch wenn er sich auf einer Seite befindet, zu der es für seine Sprache keine Übersetzung gibt.

Das dürft Ihr dann im Betatest ausgiebig testen. :twisted:
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Snoopy
Beiträge: 79
Registriert: Di 30. Jun 2015, 14:02

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von Snoopy » Mo 24. Aug 2015, 17:05

Hallo shadowcat,

bestens gelöst ;-)

Das teste ich dann gern sehr ausgiebig zuerst mit meiner kleineren Website.

Ich glaube, das haben auch alle bei WB so gelöst, allerdings ohne den von Haus aus mehrsprachenfähigen Core nur mit zusätzlicher Bastelei.

Und dass bei nicht vorhandener spezieller Sprach-Seite auf eine Standardseite gesprungen wird, ist doch ideal!
Entweder einstellbar wie für die Maintenance (Systemeinstellungen: "Im Wartungsmodus Seite anzeigen") oder einfach die erstbeste mit der niedrigsten ID, also günstigenfalls Welcome oder Willkommen,
je nachdem wie man seine Seiten begonnen hat.
Optimal wären natürlich zwei zusätzliche Pulldown-Menüs in [Systemeinstellungen] unter "Im Wartungsmodus Seite anzeigen"
dann:
Standardseite Sprache1 [Sprachwahl ausklappen]
Standardseite Sprache2 [Sprachwahl ausklappen]

...aber was macht man mit den (wenigen) Nutzern, die mehr als zwei Sprachen nutzen?
Hmmm. vielleicht genügt dann trotzdem englisch. :-)
Ciao,
Snoopy

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Mo 24. Aug 2015, 17:32

Die Standardseite-pro-Sprache-Einstellung gibt's im Zusammenhang mit der Einstiegsseite. Müßte man dann noch miteinander verheiraten. Aber erst mal würde es mir schon reichen, wenn es so funzt, wie es jetzt ist. :lol:
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Snoopy
Beiträge: 79
Registriert: Di 30. Jun 2015, 14:02

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von Snoopy » Mo 24. Aug 2015, 17:34

Ja, mir auch.
Diesmal habe ich an eine spätere Version gedacht. :lol:
Ciao,
Snoopy

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: SEO- und benutzerfreundliche URLs mit mod_rewrite

Beitrag von shadowcat » Mo 24. Aug 2015, 18:02

Ich will auch noch "sprachneutrale Seiten", die dann in allen Menüs auftauchen. Und die "diese Seite ist meine Hauptseite"-Option hab ich auch schon auf meiner Wunschliste stehen. :lol:
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Antworten