Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: URL-Weiterleitung beim Verschieben einer Kategorie

    Quelk

    • Frisch an Board
    • Beiträge: 73
    Hallo,

    es gibt ja das Problem, dass eine verschobene Kategorie weiterhin über die alte URL aufrufbar ist.
    Ich habe nun aufbauend auf das productRedirect von gunnart einen 301 redirect für Kategorien geschrieben.

    asp_subcategoryRedirect.inc.php in templates/xtc5/source/inc/

    Code: PHP  [Auswählen]
    <?php

    // -----------------------------------------------------------------------------------------
    //      asp_subcategoryRedirect.inc.php
    // -----------------------------------------------------------------------------------------
    //      Request-Adresse mit "aktuellem"-Kategorie-Link vergleichen und ggf. weiterleiten
    // -----------------------------------------------------------------------------------------
    //      Basiert auf gunnart_productRedirect.inc.php von:
    //      Gunnar Tillmann / http://www.gunnart.de
    //      im Oktober/Dezember 2008
    //      nähere Infos: http://www.gunnart.de?p=379
    //     
    // -----------------------------------------------------------------------------------------
    //
    //  v 0.1

    // -----------------------------------------------------------------------------------------
    // -----------------------------------------------------------------------------------------
    //      Auf den "gewünschten" Kategorie-Link umleiten
    // -----------------------------------------------------------------------------------------
    function categoryRedirect($current_category_id) {
      // Wenn wir auf einer Kategorie-Seite sind
      if(basename($_SERVER['SCRIPT_NAME']) == FILENAME_DEFAULT && $current_category_id > 0) {

        //BOF - web28 - 2010-08-16 - New SSL  handling  defined by $request_type
        global $request_type;
        //EOF - web28 - 2010-08-16 - New SSL  handling  defined by $request_type
        // Link zum Weiterleiten (MIT Session-ID)
        $RedirectionLink = xtc_href_link(FILENAME_DEFAULT, xtc_category_link(intval($current_category_id)));

        // Wenn es den Artikel gibt
        if($RedirectionLink) {

          // Gewünschter Link (OHNE http/https-Zeug, Session-ID und weitere $_GET-Parameter)
          $CategoryLink = str_replace(array(HTTP_SERVER, HTTPS_SERVER), '', preg_replace("/([^\?]*)(\?.*)/", "$1", $RedirectionLink));

          // Angefragte Adresse (OHNE Session-ID und weitere $_GET-Parameter)
          $CurrentLink = preg_replace("/([^\?]*)(\?.*)/", "$1", $_SERVER['REQUEST_URI']);

          // 301er-Weiterleitung mit Unterscheidung SSL / kein SSL
          if(strpos($CurrentLink, $CategoryLink) === false) {
            //BOF - web28 - 2010-08-16 - New SSL  handling  defined by $request_type
            //if ( (ENABLE_SSL == true) && (getenv('HTTPS') == 'on' || getenv('HTTPS') == '1') ) { // Bei aktivem SSL
            if((ENABLE_SSL == true) && ($request_type == 'SSL')) { // We are loading an SSL page
              //EOF - web28 - 2010-08-16 - New SSL  handling  defined by $request_type
              if(substr($RedirectionLink, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) {
                $RedirectionLink = HTTPS_SERVER . substr($RedirectionLink, strlen(HTTP_SERVER));
              }
            }
            header('HTTP/1.1 301 Moved Permanently');
            // BOF - Hetfield - 2009-11-19 - replaced deprecated function eregi_replace with preg_replace to be ready for PHP >= 5.3
            // header('Location: '.eregi_replace("[\r\n]+(.*)$","",$RedirectionLink));
            header('Location: ' . preg_replace("/[\r\n]+(.*)$/i", "", $RedirectionLink));
            // EOF - Hetfield - 2009-11-19 - replaced deprecated function eregi_replace with preg_replace to be ready for PHP >= 5.3
          }
        }
      }
    }

    // $current_category_id from application_top
    categoryRedirect($current_category_id);

    weitere Änderung
    templates/xtc5/source/boxes.php Z. 16 einfügen

    Code: PHP  [Auswählen]
    // BOF - asp - redirect moved subcategories
    require_once (DIR_FS_CATALOG . 'templates/' . CURRENT_TEMPLATE . '/source/inc/asp_subcategoryRedirect.inc.php');
    // EOF - asp - redirect moved subcategories

    Freue mich auf Feedback :-)

    Linkback: https://www.modified-shop.org/forum/index.php?topic=33822.0

    spar-helferchen

    • Fördermitglied
    • Beiträge: 21
    Re: MODUL: URL-Weiterleitung beim Verschieben einer Kategorie
    Antwort #1 am: 14. Februar 2016, 14:32:13
    Hallo Quelk,

    super Erweiterung!
    Hab sie eben problemlos eingebaut und funktioniert prima.
    Kann ich jedem nur empfehlen der seine Kategorien verschiebt und sich die ganzen Rewrites ersparen möchte. :-)

    Danke, danke, danke
    Alex

    Quelk

    • Frisch an Board
    • Beiträge: 73
    Re: MODUL: URL-Weiterleitung beim Verschieben einer Kategorie
    Antwort #2 am: 17. Februar 2016, 10:32:38
    Halle spar-helferchen,

    vielen Dank für das Lob und das Feedback.

    Sag Bescheid, sollte es mal Probleme geben.

    VG

    Quelk

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: MODUL: URL-Weiterleitung beim Verschieben einer Kategorie
    Antwort #3 am: 23. Februar 2016, 19:15:51
    Die Weiterleitung hat das Problem, dass sie keine Kategorielinks mit mehreren Seite erkennt.
    So wird beispielsweise innerhalb einer Katgorie, die sehr viele Artikel enthält, beim Klick auf Seite 2 wieder zurück geleitet auf die Kategorie-ID.

    Beispiel:

    http://www.xample.com/Testkategorie:::1:2.html

    leitet unerwünscht weiter nach:

    http://www.xample.com/Testkategorie:::1.html

    So kommen Besucher nie auf die weiteren Seiten einer Kategorie.

    Grüße

    Torsten

    Jürgen

    • Viel Schreiber
    • Beiträge: 895
    • Geschlecht:
    Re: MODUL: URL-Weiterleitung beim Verschieben einer Kategorie
    Antwort #4 am: 23. Februar 2016, 19:43:21
    Hallo,

    ist das nicht die gleiche Funktion...mit dem categoy redirect?

    MODULE: Duplicate Content vermeiden – categoryRedirect utf-8 mit ShopStat

    Gruss

    Jürgen

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: MODUL: URL-Weiterleitung beim Verschieben einer Kategorie
    Antwort #5 am: 23. Februar 2016, 21:24:05
    Ja stimmt! Die Version "MODULE: Duplicate Content vermeiden – categoryRedirect utf-8 mit ShopStat" hat auch mit dem "page"-Parameter keinerlei Probleme! ;-)

    Grüße

    Torsten
    Shop Hosting
    4 Antworten
    3535 Aufrufe
    17. November 2011, 13:45:56 von stormshadow