26. 10. 2016, 15:27

Ausgangsituation:
Es gibt eine mehrprachige Website im one-Tree-Konzept.
Die default-Sprache ist english.
Es gibt eine einzelne Landingpage in französich.
Alle von dieser frz. Seite ausgehenden Links sollen aber in englisch generiert werden und nicht in französich (zumal es die Seiten nicht in frz gibt. Ok. hier würde vllt. fallback greifen, aber SEO mäßig ist es dann i.A.)

Bei RealUrl 1.x ging das noch Mithilfe der folgenden Condition:

  1. [globalVar = GP:L = 6]
  2. # limit the language to en,de so we wont produce links to pages in fr which doesnt exist
  3. config.linkVars = L(0-1)
  4. config.defaultGetVars.L = 0
  5. [global]

Es resultierten Links der Form: /en/company/portrait
Bei RealURL 2.x resultieren aber Links, bei denen nur das "/en/" entfällt.
Die gleichen Seiten sind dann einmal sowohl unter /en/ und einmal ohne /en/ verfügbar, was SEO mäßig nicht gut ist.

So doch nun der Patch für RealURL 2.1.4:
In der Datei
/ext/Realurl/Classes/Encoder/URLEncoder.php
in der Funtion "encodURL"
ca. in Zeile 135 folgendes hinzu:

  1. // stm: add missing /en/ segment if not set
  2. if ($encoderParameters['LD']['linkVars']==""){
  3. $this->encodedUrl = "/en".$this->encodedUrl;
  4. }

Achtung: zum Testen des ganzen muss immer wieder der T3-Frontend-Cache gellert werden, da nur dann die Funktion "encodeURL" aufgerufen wird.

Vllt. hilfts jemandem, der selbiges Problem hat ODER jemand hat einen besseren Weg gefunden ohne Patch. Dann gerne Info posten.