Allgemeine Fragen zu mehrsprachiger Website, Ordnerstruktur, Wurzelseite und .htaccess

  • Hallo zusammen,


    ich habe eine mehrsprachige Website mit Zeta 14.3.3 fertiggestellt. Nach vielen (nervenaufreibenden) Recherchen funktioniert jetzt soweit auch fast alles. Das Wörtchen "fast" bezieht sich auf die 301-Weiterleitungen, innerhalb der .htaccess, aber dazu gleich mehr.


    Die Website funktioniert, aber es bleibt trotzdem ein flaues Gefühl. Es bleibt für mich die Frage: "War das jetzt alles so richtig, oder geht es einfacher?". Ich habe zwar alles so gemacht wie es hier: https://docs.zeta-producer.com/mehrere-sprachen.html beschrieben wurde, aber irgendwie scheint diese Anleitung unvollständig zu sein, denn wenn ich für jede Sprache einen separaten Ordner erstelle, dann gibt es keine index.html (für die Wurzelseite) worauf sich der Server beziehen kann. Ohne eine .htaccess-Datei und extra Code funktioniert das Ganze nicht.


    Ich wollte es erst mit dem Vorschlag von Steffen lösen, die DE-Seite nicht in einen extra Ordner zu packen und diese als Wurzelseite zu verwenden, aber das geht mit der 14er Version scheinbar auch nicht. Ich war gezwungen für jede Sprache einen Ordner anzulegen und in der .htaccess eine Weiterleitung einzurichten.

    Nur so war es möglich das Projekt zum laufen zu bringen!


    --------------------------------

    Falls jemand ähnliche Probleme haben sollte, hier der Code für die Umleitung in .htaccess:


    Wenn die Domain aufgerufen wird, dann wird z.B. weitergeleitet auf: mustermann.de/de/index.php (Startseite)


    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^(www.)?mustermann.de$

    RewriteCond %{REQUEST_URI} !^/de/

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ /de/$1

    RewriteCond %{HTTP_HOST} ^(www.)?mustermann.de$

    RewriteRule ^(/)?$ de/index.php [L]


    Code-Quelle

    --------------------------------



    Jetzt funktioniert aber die 301-Weiterleitung von älteren Seiten im Google-Index nicht richtig.

    Wenn z.B. in der.htaccess steht: Redirect 301 /alte-seite.html https://www.mydomain.xy, dann wird in der Browser-URL

    https://www.mydomain.xy//de/alte-seite.html, angezeigt (mit Error 404). Der Doppel-Slash (//de) ist kein Tippfehler! Erst wenn ich in der URL (manuell) "/de" entferne und Enter drücke, erscheint das richtige Weiterleitungsziel. Es ist jetzt kein "Showstopper" und Google schmeißt die paar alten Verweise irgendwann raus, aber schön wäre es wenn es funktionieren würde.


    Meine Fragen:

    1. Fehlen irgendwo noch Informationen in der "Mehrere-Sprachen-Anleitung", oder ist es absichtlich so gestaltet, dass man sich die Infos zusammensuchen muss? (evtl. wegen Zuständigkeit, Serverseitigkeit, Hoster etc..?)

    2. ..oder habe ich evtl. irgendwo einen Denkfehler und das Ganze geht viel einfacher?

    3. Weiß jemand wie und wo man etwas anpassen muss, damit nicht dieses zusätzliche "/de" bei einer 301-Weiterleitung in der URL erscheint?

  • Hallo,


    zu 1: Nein, da fehlen eigentlich keine Infos, da wir auf Weiterleitungen via .htaccess hier auch gar nicht eingehen und dies auch nicht unbedingt notwendig ist.


    zu 2: Warum hat mein Vorschlag denn nicht funktioniert? Es ist problemlos möglich, dass eine Website-Ausgabe nicht in einem Unterordner liegt.


    zu 3: Schreiben Sie die 301-Weiterleitung doch einfach komplett hin: Redirect 301 /name-der-seite.html https://www.mydomain.xy/de/name-der-seite.html

    Freundliche Grüße
    Steffen T. (Zeta Producer-Support)

  • Hallo Steffen,


    zu 1:
    Ich schrieb das mit den "fehlenden Infos" deshalb, weil ich die Website nach der Anleitung erstellt habe: "Jede Sprache in einen extra Ordner". Danach stellte sich mir aber die Frage: Und Jetzt? Die index.html Dateien liegen jeweil in dem Sprachordner, daher findet der Server natürlich die Startseite nicht. Ich entschloss mich dann die Weiterleitung (siehe oben) einzubauen. Geht es denn einfacher?


    zu 2:
    Weil ich keine Möglichkeiten dafür finde. Ich bin davon augegangen, dass Ihre Aussage sich evtl. auf eine ältere Version bezieht und sich jetzt die System-Struktur evtl. geändert hat. Denn wenn ich auf "◎ mydomain.xy *" klicke, (rechte Maus oder über Auswahl), dann erscheint :

    *◎ mydomain.xy

    de-Ordner

    en-Ordner


    Ich habe also keine Möglichkeit hier eine index.html oder andere Dateien zu erstellen, sondern nur Projektordner. Mache ich hier irgendetwas falsch? Habe leider keine anderen Infos gefunden. siehe Punkt 1.


    zu 3:

    Die von Google indizierte HTML-Seite existiert nicht mehr. Daher wollte ich diese nicht automatisch auf Error-404 umleiten lassen, sondern mit 301-Weiterleitung wenigstens auf die Startseite. Wenn es irgendwie ginge wäre es schön. SEO-Technisch hat eine 301-Weiterleitung sicherlich mehr Vorteile... die restlichen SEO-Probleme (URL u. /index.html + Duplicate Content etc.) konnte ich mit Canonical-Tags lösen, dazu habe ich hier im Forum viele (verständliche) hilfreiche Infos gefunden.. aber das ist ein anderes Thema.

    • Hilfreich

    zu 2: Sie müssen auf den Sprachordner "Deutsch" einen Rechtsklick machen und "Bearbeiten" wählen. Unter der Gruppe "Datei" im Feld "Ordner" einfach alles entfernen, so dass das Feld leer ist. Die Seiten der deutschen Website liegen dann also im Hauptverzeichnis. Dort gibt es auch eine index.html oder index.php.


    zu 3: Geht doch so Redirect 301 /name-der-seite.html https://www.mydomain.xy/de/index.php oder, wenn Sie Punkt 2 hinbekommen haben: Redirect 301 /name-der-seite.html https://www.mydomain.xy/index.php

    Freundliche Grüße
    Steffen T. (Zeta Producer-Support)

  • zu 2.: Sehen Sie, genau das meinte ich mit der "fehlenden Info".
    Auf die Idee muss man erst einmal kommen... ;)


    zu 3.: Normalerweise würde es genau so funktionieren. Den ersten Teil hatte ich bereits ausprobiert, ging leider auch nicht. Den zweiten Teil, werde ich dann einsetzen wenn ich die Sprache DE verschoben habe.


    Die allerwichtigste Info die Sie mir gegeben haben ist:

    Zitat: Unter der Gruppe "Datei" im Feld "Ordner" einfach alles entfernen, so dass das Feld leer ist.


    Vielleicht habe ich diese Info irgendwo einfach nur überlesen. Wenn die Information nicht im Zeta-Handbuch stehen sollte, dann gehört sie meiner Meinung nach definitiv dort hinein.


    Vielen Dank Steffen... das war sehr hilfreich! :thumbsup:

  • Hallo Thomas,


    Ich habe mir eben das Handbuch nochmal angeschaut, es ist alles sehr gut erklärt, nur ein kleiner Hinweis fehlt meiner Meinung nach.

    Und zwar genau an dieser Stelle:



    Es steht dort nicht, aber ich bin davon ausgegangen, dass diese Einstellung für alle alle Sprachordner gilt. Habe also bei: Ordner > de eingetragen. Die Ordner-Struktur innerhalb von Zeta sieht für alle Sprachen gleich aus, also war das die logische Schlussfolgerung.... und damit habe ich mich selbst "verzettelt". Ein expliziter Hinweis für Leute wie mich, wäre sehr hilfreich gewesen.


    Um deutlich zu machen was mich verwirrt hat:

    Ich bin es gewohnt, lokal die selbe Struktur zu haben wie auf dem Server. Da sich jede Sprachen in einem separaten Ordner befindet und sich die Struktur für die Projekt-Startseite nur im Hintergrund (unsichtbar) abgebildet wird, stellte sich mir die Frage: Und nu? Da sich etwas im Hintergrund abspielt und es auch optisch nicht nachvollziehbar ist, ist es meiner Meinung nach erwähnenswert.


    so z.B.: Hinweis: Ordner > Für die Standardsprache (z.B. de) wird dieses Feld leer gelassen. Die index-Datei für die Standardsprache wird dann als Startseite für Ihre Domain verwendet.


    Du bist natürlich voreingenommen und kennst die Abläufe, wirst sicherlich alles richtig machen... ;)



    @Steffen

    Ich habe die Sprache DE verschoben. Es funktioniert jetzt alles perfekt, auch die 301-Weiterleitungen! :thumbsup::thumbsup::thumbsup:

    Wie aus Zauberhand wurde auf dem Server genau die Struktur abgebildet die ich die ganze Zeit vermisst habe. Ich musste nur die .htaccess anpassen und den Ordner "de" löschen -> weil leer!


    PERFEKT!

    Vielen DANK!