Probleme mit dem hreflang Tag im head

  • Hi mir ist ein möglicher Fehler auf den Unterseiten meiner Joomla Website mit dem hreflang Tag aufgefallen und ich Frage mich als Neueinsteiger in die Joomla Welt wie das zu beheben ist.
    Das hreflang Tag sieht zur Zeit auf den Unterseiten wie z.B. AGB oder Pflegetipps wie folgt aus:


    <link rel="alternate" href="http://domain.de/en" hreflang="en">
    <link rel="alternate" href="http://domain.de/de" hreflang="de">


    Laut Xovi sollten die Unterseiten allerdings mit den alternate tags direkt auf die Unterseiten verlinken also wie folgt z.B. für die AGBs:


    <link rel="alternate" href="http://domain.de/en/agb" hreflang="en">
    <link rel="alternate" href="http://domain.de/de/agb" hreflang="de">


    Ich hab mich jetzt chon durch backend gesucht und habe weder im Sprachfilter noch im Sprachcode eine Option gefunden wo man das verändern kann.


    Mittlerweile weiss ich schon das der header eines jeden Joomla Documents in /libraries/joomla/document/html/renderer/head.php gerendert wird. Allerdings konnte ich noch nicht die funkton ausfindig machen die diese hreflang tags rendern. Kann mir jemand mit mehr Joomla erfahrung erzähen wo ich diese url verändern kann - sei es im backend oder aber im code. dann würde ich im notfall ein override schreiben und die sache wäre erledigt :)
    Vielen Dank für die Hilfe im vorraus.


    tdotcom

  • ja, da gibt es ja nicht viele optionen.
    was es gibt ist halt die option den alternate tag zu setzen. ich konnte leider keine tiefere ebene finden wo man hier an den parametern rumschrauben kann...


    so siehts die config bei mir aus:


  • Bei mit unter Joomla 3.5.1 gibt es weitere Einstellungen.
    Ich meinte das mit "Verknüpfte Einträge", was bei dir auch da ist, aber ggf. buggy.


    Wenn's nach Update auf aktuelles Joomla und erneut speichern der Einstellungen weiterhin fehlerhaft, kannst Bugs hier einreichen:
    Englisch https://issues.joomla.org/
    Deutsch http://www.joomla-bugs.de/forum/index.php

  • Ich habe gerade das Problem erkannt: Das ALternate Tag wurde garnicht vom System gesetzt sondern in der index.php vom Template - also wurde es nicht dynamisch erzeugt. ich habe das jetzt einfach erstmal so gelöst:


    <link rel="alternate" href="<?php echo $myabsoluteurl=JURI::current(); ?>" hreflang="en" />
    <link rel="alternate" href="<?php echo $myabsoluteurl=JURI::current(); ?>" hreflang="de" />


    wäre ja schön wenn joomla das auch vom sytem her alleine hinbekommt ! Ich glaub ich werd maal den bugtracker nutzen. Danke für die Hilfe :)

  • wäre ja schön wenn joomla das auch vom sytem her alleine hinbekommt


    Ausprobiert. Klappt wie gewünscht. Kein Bug.


    2-Sprachiges Joomla 3.5.1 (DE und EN).


    Artikel DE angelegt. "artikel-de". Sprache auf DE.
    Menüpunkt DE angelöegt. Alias "artikel". Menütyp: Einzelner Beitrag: Zeigt auf "artikel-de". Sprache auf DE.


    Artikel EN angelegt. "article-en". Sprache auf EN. Verknüpfung mit "artikel-de" nach erstmaligem speichern.
    Menüpunkt EN angelöegt. Alias "article". Menütyp: Einzelner Beitrag: Zeigt auf "article-en". Sprache auf EN. Verknüpfung mit Menü "artikel nach erstmaligem speichern..


    Im aktivierten Plugin alles auf JA außer "Sprachkürzel entfernen".


    Seitenquelltext ohne URL-Rewrite nutzen aktiviert.:

    Code
    1. <link href="http://localhost/multilang/index.php/de/artikel" rel="alternate" hreflang="de-DE" /><link href="http://localhost/multilang/index.php/en/article" rel="alternate" hreflang="en-GB" />---- SOWIE weiter unten------<link href="http://localhost/multilang/index.php/de/artikel"" rel="alternate" hreflang="x-default" />


    Seitenquelltext mit URL-Rewrite nutzen aktiviert.:

    Code
    1. <link href="http://localhost/multilang/de/artikel" rel="alternate" hreflang="de-DE" />
    2. <link href="http://localhost/multilang/en/article" rel="alternate" hreflang="en-GB" />
    3. ---- SOWIE weiter unten------
    4. <link href="http://localhost/multilang/de/artikel" rel="alternate" hreflang="x-default" />


    Dabei war es wurst, ob ich nur die Menüs verknüpfe und/oder nur die Beiträge, so lang die Spracheinstellungen in Menü und Beiträgen korrekt sind.
    Wenn die Beiträge verknüpft sind, sollte man auch keine Probleme bei Artikeln haben, die keinen eigenen Menüeintrag.

  • sorry, das ich den Thread neu aufrolle.
    Ich habe eine einsprachige Webseite, aber mehrere Domains.
    www.HDsports.at - für österreichische User
    www.HDsports.de - für Deutsche User
    www.hdpsorts.org für den Rest


    Habe diesen Code in den Header eingebaut

    Code
    1. <link rel="alternate" hreflang="x-default" href="http://www.hdsports.at/" /><link rel="alternate" hreflang="de-AT" href="http://www.hdsports.at/" /><link rel="alternate" hreflang="de-DE" href="http://www.hdsports.de/" /><link rel="alternate" hreflang="de-CH" href="http://www.hdsports.org/" /><link rel="alternate" hreflang="de-US" href="http://www.hdsports.org/" /><link rel="alternate" hreflang="de-GB" href="http://www.hdsports.org/" />


    Dann bekam ich von Google eine Fehlermail mit "keine Rücklinks"


    Das Problem, der Code von oben wird natürlich auch auf allen Unterseiten eingeblendet.


    Aber im Prinzip sollte ja auf einer Unterseite wie z.B. http://www.hdsports.de/alpencup-tirol folgender Code im Header sein:


    Code
    1. <link rel="alternate" hreflang="x-default" href="http://www.hdsports.at/alpencup-tirol" />
    2. <link rel="alternate" hreflang="de-AT" href="http://www.hdsports.at/alpencup-tirol" />
    3. <link rel="alternate" hreflang="de-DE" href="http://www.hdsports.de/alpencup-tirol" />
    4. <link rel="alternate" hreflang="de-CH" href="http://www.hdsports.org/alpencup-tirol" />
    5. <link rel="alternate" hreflang="de-US" href="http://www.hdsports.org/alpencup-tirol" />
    6. <link rel="alternate" hreflang="de-GB" href="http://www.hdsports.org/alpencup-tirol" />


    Nur wie bekomme ich das hin? Den Sprachenfilter von Joomla brauche ich ja nicht, da ich nur eine Sprache habe.

  • hey zusammen, bevor ich einen neuen thread eröffne, poste ich mal hier rein


    ich habe alles soweit eingerichtet wie vorgegeben, allerdings zeigt er mir auf allen Seite folgendes an

    Code
    1. <link href="http://example.de/de/shootings/paare" rel="alternate" hreflang="x-default" />


    Ich habe auch alle Seiten und beitrage mit einander verknüpft.

  • hey zusammen, bevor ich einen neuen thread eröffne, poste ich mal hier rein


    Nicht gut: Eigene Frage, eigener Thread.
    Alles Andere ist eine Thread-Kaperung, erst recht in einem schon "gelöstem" Thread.
    Lösung steht übrigenst hier im Therad Probleme mit dem hreflang Tag im head vom JUNI 2016. Einfach mal von Anfang an lesen.

  • Ich habe es mit folgendem Code für meine Seite gelöst


  • Hi,


    ich habe es gefunden, allerdings nicht in meinem Template, sondern in der folgenden Datei:
    plugins\system\languagefilter\languagefilter.php


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


    <link href="http://www.example.org/de/" rel="alternate" hreflang="x-default" />


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


    if (isset($languages[$xdefault_language])){ // Use a custom tag because addHeadLink is limited to one URI per tag $doc->addCustomTag('<link href="' . $server . $languages[$xdefault_language]->link . '" rel="alternate" hreflang="x-default" />');}


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


    <link href="http://www.example.org/ch/" rel="alternate" hreflang="de-CH" /><link href="http://www.example.org/at/" rel="alternate" hreflang="de-AT" /><link href="http://www.example.org/en/" rel="alternate" hreflang="en-GB" /><link href="http://www.example.org/de/" rel="alternate" hreflang="de-DE" />


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


    foreach ($languages as $i => &$language){ $doc->addHeadLink($server . $language->link, 'alternate', 'rel', array('hreflang' => $i));}


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


    Ein Override der languagefilter.php Datei ist leider nicht möglich, oder?


    Was würdet Ihr mir empfehlen, diese Zeilen in der "languagefilter.php" Datei auskommentieren
    und die Zeilen von HDsports im Head meines Templates (index.php) hinzufügen?