Ankündigung

Einklappen
Keine Ankündigung bisher.

Umleitung mit page Attribut

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umleitung mit page Attribut

    Hallo Leute,
    ich habe folgendes Problem. Nach Umstellung meiner Homepage von einem proprietären CMS auf Joomla funktionieren die Sitelinks, die noch bei Google hinterlegt sind (z.B. www.xyz.de/index.php?page=kontaktformular) nicht mehr, bzw. verweisen alle auf die Startseite. Unter normalen Umständen wäre das nicht schlimm, jedoch sind diese alten Links wohl bei Google nicht beeinflussbar. Deshalb würde ich gerne eine Weiterleitung einrichten, die auf die neue Seitenstruktur mappt. In meinem Fall also beispielsweise www.xyz.de/index.php/kontakt-oeffnungszeiten. Habe schon versucht es mit den Joomla Mitteln (im Adminbereich) zu bewerkstelligen und auch Änderungen in der Htaccess Datei vorgenommen, alles jedoch ohne Erfolg. Deshalb wollte ich es jetzt direkt in der index.php meines Templates ändern. Hatte mir dazu folgendes eingebaut:

    Über dem Header:
    PHP-Code:
    if (isset($_GET["page"])) {
        
    $url $_GET["page"];

    Im Body:
    PHP-Code:
    if ($url=="kontaktformular") { include ("index.php/kontakt-oeffnungszeiten");} 
    Leider scheint das etwas naiv zu sein und funktioniert nicht. Hat jemand einen Tip für mich? Vielen Dank!

  • #2
    Was willst Du denn genau erreichen? Eine Umleitung würde drei Schritte erfordern:

    1. Ziel-URL erlangen (z. B. über Deinen "page"-Parameter)
    2. Ziel-URL validieren
    3. Umleiten
    PHP-Code:
    header('Location: ...'); 

    Kommentar


    • #3
      Vielen Dank für den Tip! Jetzt funktioniert es hiermit:

      PHP-Code:
      /*Google Umleitungen*/
      if (isset($_GET["page"])) {
          
      $url $_GET["page"];
          
          if (
      $url=="impressum") { header ("Location: impressum");exit;}
          if (
      $url=="mundhygiene") { header ("Location: behandlung/mundhygiene");exit;}
          if (
      $url=="implantologie") { header ("Location: behandlung/schwerpunkt-implantologie");exit;}
          if (
      $url=="kontaktformular") { header ("Location: kontakt-oeffnungszeiten");exit;}
       

      Kommentar


      • #4
        Ist aber suboptimal.
        Schau Dir mal switch an, setze pro case einen absoluten Pfad ( den benötigt header nämlich, wenn mans richtig nutzt ) und leite anschliessend auf den weiter.
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Eine Frage für mein Verständnis: Wäre es nicht sinnvoller das mit einem htaccess rewrite zu lösen? Wo auch gleich der richtige Statuscode (301) übermittelt wird. Sollte dich für die nächste indexierung von Google besser sein. Oder täusche ich mich da?

          Kommentar


          • #6
            Ja, Du kannst das auch über .htaccess lösen, aber das würde den TE m.E. überfordern.
            Davon mal abgesehen macht es sowieso mehr Sinn, die entsprechenden Inhalte per include/require einzubinden, als dieses header-Gedöns...
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Ich dachte nur, dass bei einer einfachen Weiterleitung Google denken könnte, das es sich dabei um doppelten Content handelt. Das mag Google ja doch eher weniger. Mit Statuscode 301 sollte Google aber mitbekommen, dass es der gleiche Content ist nur unter einer anderen Adresse. (Wenn ich das Prinzip von Googles Seitenindexierung richtig verstanden habe)

              Kommentar


              • #8
                Wo auch gleich der richtige Statuscode (301) übermittelt wird.
                Nur der Vollständigkeit halber, das kannst aber auch mit header() vor der Weiterleitung.

                http://php.net/manual/de/function.header.php#78470
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Danke für den Hinweis. Hatte mich in der Form mit header() nocht nicht so intensiv auseinander gesetzt.

                  Kommentar


                  • #10
                    Zitat von Arne Drews Beitrag anzeigen
                    Ja, Du kannst das auch über .htaccess lösen, aber das würde den TE m.E. überfordern.
                    Davon mal abgesehen macht es sowieso mehr Sinn, die entsprechenden Inhalte per include/require einzubinden, als dieses header-Gedöns...
                    Wie beschrieben, hat eine Weiterleitung via htaccess nicht funktioniert. Ich nehme an es liegt an der Art des Links, die immer mit einem index.php beginnt oder aber an Joomla selbst...

                    Kommentar


                    • #11
                      Joomla selbst nutz doch sicher auch .htaccess
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar


                      • #12
                        Ja Joomla hat sogar eigene eigene Rubrik im Frontend (Umleitungen) die dann automatisch in die htaccess reinschreibt. In meinem konkreten Fall funktioniert es jedoch nicht. Habe es jetzt mit der switch Anweisung und 301 Kennzeichnung gelöst. Das geht ohne Probleme. Vielen Dank!

                        Kommentar

                        Lädt...
                        X