[Frage] Startseite für zweisprachige Webseite ohne Slash am Endem auch per f:link und als canonical tag? TYPO3-Version: -

  • miniton miniton
    Padawan
    0 x
    31 Beiträge
    1 Hilfreiche Beiträge
    28. 09. 2021, 15:02

    Hallo,

    ich mache gerade ein Update einer zweisprachigen TYPO3-Seite von V9 auf V10.

    Dabei sollen auch die Einstiegspunkte für die beiden Sprachen angepasst werden von
    http://www.example.com/home
    http://www.example.com/en/home

    nach
    http://www.example.com/de
    http://www.example.com/en

    Die URLs sollen wie gewohnt ohne / am Ende dargestellt werden. Das Ganze soll der SEO dienen. Die Slugs werden teilweise angepasst. Ich mache nur die technische Anpassung.

    Der Seitenbaum ist so konfiguriert, dass die Root-Seite ein Verweis auf die Startseite ist. So habe ich die Seite mal übernommen und so wird es ja häufig gemacht.

    (siehe Bild, einfügen klappt leider nicht)
    https://app.box.com/s/kahxy94fwlimea0sp5gyhqfe9bq5dhqv

    In der config.yaml für die Seitenkonfiguration steht folgendes, um URLs ohne / zu erhalten.
    [code]routeEnhancers:
    PageTypeSuffix:
    type: PageType
    default: ''
    index: ''
    [/code]

    Jetzt habe ich das Problem, dass ich für alle Seiten eine Slug ohne / am Ende angeben kann, nur für die eigentlich Startseite (13) nicht. Ich muss als Slug mindestens einen / eingeben.

    Ergebnis:
    Ich kann die Seite korrekt mit http://www.example.com/de aufrufen, aber als kanonischer Link wird http://www.example.com/de/ angegeben. Auch bei einer Verlinkung per f:link im Fluid-Template wird als Link /de/ erzeugt.

    Wenn ich den Slug manuell in der Datenbank lösche, bekomme ich einen 404.

    Hat jemand eine Idee, wie ich das richtig hinbekommen kann?

    Danke und viele Grüße

    Christian


  • 1
  • 0 x
    3253 Beiträge
    152 Hilfreiche Beiträge
    29. 09. 2021, 08:15

    Du stolperst hier über den Shorcut. http://www.example.com/de ruft *nicht* die Seite 13 auf, sondern die Rootpage (die auf die 13 umleitet). Die Seite 13 hat aber als URL den Entry Point "http://www.example.com" (+Sprachkürzel "/de") + Slug "/", womit der Slash in der eigenen URI immer mit drin ist.

    Vom Hintergrund her:
    TYPO3 muss anhand der URL eine Seite *eindeutig* erkennen. Wie soll das für http://www.example.com/de geschehen? Diese ist per Definition die Rootpage (plus Sprachvariante), soll aber *gleichzeitig* eine Unterseite identifizieren???

    Um die von dir gewünschten URLs zu bekommen, führt eigentlich kein Weg dran vorbei, die Rootpage zur Startseite zu machen.

  • Teisinger Teisinger
    Jedi-Ratsmitglied
    0 x
    502 Beiträge
    37 Hilfreiche Beiträge
    29. 09. 2021, 09:49

    @julian Hofmann
    das musst du mir erklären bitte, denn bei uns sind die RootSeiten die Startseiten, das Verhalten ist dennoch das selbe. Wie auch hier zu sehen:
    https://www.typo3forum.net/discussion/85291/startseite-fuer-zweisprachige-webseite-ohne-slash-am-endem-auch-per-f-link-und-als-canonical-tag#latest

    https://github.com/groundstack-org

  • miniton miniton
    Padawan
    0 x
    31 Beiträge
    1 Hilfreiche Beiträge
    29. 09. 2021, 11:18

    @julian
    Die Rootseite hat den slug "/start", und die Seite 13 den Slug "/".
    Also kann die 13 direkt mit "http://www.example.com/de/" aufgerufen werden, aber leider nicht mit "http://www.example.com/de".
    Intern wird doch sowieso "index.php?id=13" aufgerufen.

    Ich hatte auch die Idee mit Root=Start, aber ich fürchte die Rootseite verhält sich nicht anders als andere Seiten in dieser Hinsicht.

    P.S.: Interssant das in meinem Post aus domain.net -> example.de wurde ;-)

  • 0 x
    3253 Beiträge
    152 Hilfreiche Beiträge
    30. 09. 2021, 12:18

    @Teisinger: Hier sind zwei Punkte zusammengefasst: zum Einen die Thematik des Shortcuts bzw. zu eliminierenden "home" in der URL, zum Anderen der Slash am Ende. Ich bezog mich auf den ersten Aspekt. Und zu dem kann ich im Link nichts direkt erkennen. Oder versteh ich Dich falsch?

    Zum Problem des Slash am Ende:
    Auch für die Seite, die unter "http://www.example.com" aufrufbar sein soll, braucht es einen nicht leeren Slug (siehe Seiteneigenschaften). Der Teil hinter dem Domainnamen kann daher im Mimimalfall "/" sein, woraus sich "http://www.example.com/" ergibt. Kürzer geht es nicht. Der Slash am Ende der CanonicalURL ist also *nicht* der PageTypeSuffix, sondern ist der Slug.
    Einfache Überprüfung: gib der Rootpage einen anderen Slug, z.B. '/root'. Dann wird als CanonicalURL eine URL ohne PageTypeSuffix erzeugt: http://www.example.com/root.

  • 0 x
    3253 Beiträge
    152 Hilfreiche Beiträge
    30. 09. 2021, 12:32

    Zitiert von: miniton
    P.S.: Interssant das in meinem Post aus domain.net -> example.de wurde ;-)

    Ja, interssant... ;) Hintergrund: https://wiki.selfhtml.org/wiki/Example.com

  • Teisinger Teisinger
    Jedi-Ratsmitglied
    0 x
    502 Beiträge
    37 Hilfreiche Beiträge
    01. 10. 2021, 08:39

    @Julian.Hofmann
    achso... :)
    ---------------
    "Auch für die Seite, die unter "http://www.example.com" aufrufbar sein soll, braucht es einen nicht leeren Slug..." hmm sollte doch aber wohl technisch machbar sein oder nicht? Kann dann wohl TYPO3 nur nicht?! Wäre dann wohl ein Feature Wunsch für forge...

    https://github.com/groundstack-org

  • 0 x
    3253 Beiträge
    152 Hilfreiche Beiträge
    01. 10. 2021, 14:45

    Ja, könnte wohl als Feature-Wunsch (oder gleich als PR ;) ) eingereicht werden. RFC 1738 meint 'Some or all of the parts (...) "/<url-path>" may be excluded'. Der Slash scheint also nicht notwendig.

    https://datatracker.ietf.org/doc/html/rfc1738#section-3.1

  • 1