Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
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: Alte "Ultimate SEO URLs" von Chemo weiterleiten auf ShopStat URLs?

    brok

    • Fördermitglied
    • Beiträge: 11
    Hallo,

    die SEO friendly URLs Frage beschäftigt mich auch. Habe noch einen alten osCommerce 2.2 Shop mit gefühlten 100.000 Modifikationen am Laufen und in den letzten Tagen hier bei xtc modified etwas herumgeschnüffelt. Sehr attraktives System mit zahlreichen tollen Features, die ich bisher in OsC nicht zum Laufen bekommen habe (xs:booster, Gutscheincoupons, Kundengruppen, ...)

    Scheinbar ist ein Upgrade machbar, zumindest dem zufolge, was ich hier im Forum lese (manuelle Datenmigration mit Hilfe von 2 CSV-Dateien, Kundenpasswort-Verschlüsselungsalgorithmus ändern, ...) Eine Sache macht mir aber noch Bauchschmerzen, und das sind die suchmaschinenfreundlichen Links:

    Im alten Shop verwende ich "Ultimate SEO URLS" von Chemo, bei dem per "mod_rewrite" die Produktlinks so aussehen:

    Zitat
    <artikelname mit Bindestrichen statt Leerzeichen und mit Wegfall von Wörtern unter 4 Zeichen>-p-<product_id>.html

    Es wäre ungeheuer wichtig für uns, diese URL-Syntax zu erhalten, um unsere 3000 Artikel nicht aus Google verschwinden zu lassen und um Deeplink-Backlinks auf die Produkte nicht zu verlieren.

    Frage daher:
    In welcher PHP Datei kann ich auf die URL Syntax in modified eCommerce Shopsoftware Einfluss nehmen? In osCommerce gab's dafür die "/includes/classes/seo.class.php", und Anpassungen in der HTML wrapper Funktion in "/admin/includes/functions/html_output.php" waren notwendig (ganz zu schweigen von der ".htaccess" Datei, klar). In der "application.top" bei modified eCommerce Shopsoftware wird seo-technisch nichts aufgerufen und nicht einmal irgendwo abgefragt, ob seo urls true oder false ist.

    Alternativ hat vielleicht jemand Erfahrungen, die osCommerce Contribution Ultimate SEO URLs umzuschreiben für modified eCommerce Shopsoftwareodifed?

    Bin dankbar für jede Hilfe!

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

    brok

    • Fördermitglied
    • Beiträge: 11
    Jetzt hab ich was:
    "/inc/shopstat_functions.inc.php", da finde ich die Einstellungen, oder?

    brok

    • Fördermitglied
    • Beiträge: 11
    Wuunderbar, jetzt muss nur noch die Kategoriebezeichnung aus dem Link raus. Das kann ich durch Auskommentieren in der Zeile 279 in "/inc/shopstat_functions.inc.php" erreichen, aber die Tatsache, dass da noch eine if-Abfrage zu ist, lässt mich vermuten, dass man das auch irgendwo im Backend einstellen kann, ohne das hardzucoden? Weiß das zufällig wer, wo das geht?

    Viele Grüße,
    brok

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Ich habe deine Beiträge mal vom Thema "Suchmaschinen (un)freundliche URLs" abgetrennt und das Thema umbenannt.

    Grüße

    Torsten

    web28

    • modified Team
    • Beiträge: 9.404
    [...]
    Zitat
    <artikelname mit Bindestrichen statt Leerzeichen und mit Wegfall von Wörtern unter 4 Zeichen>-p-<product_id>.html
    [...]

    Wenn die IDs in den alten Links stehen, kann man alles in der ".htaccess" redirecten(301).

    Für Artikellinks ohne Kategoriepfad kann man Zeile 156 (Datei aus SP1) auskommentieren und die Variable auf leer setzen.

    Code: PHP  [Auswählen]
    //$category['categories_name'] = shopstat_getRealPath(xtc_get_product_path($prodid));
    $category['categories_name'] = '';

    Da die Kategorienamen im Artikelpfad aus SEO Sicht nicht mehr ideal sind, wird es im SP1b Paket einen Schalter in der Datei geben (wie für das Trennzeichen im Dateikopf).

    Gruss Web28

    brok

    • Fördermitglied
    • Beiträge: 11
    Hi Web28,

    Danke für die Hilfe. Ich poste mal die Ergebnisse, falls noch wer Interesse daran hat:

    A) In der ".htaccess" die Rewrite Rules nach diesem Schema ändern:

    Code: PHP  [Auswählen]
    ##-- Produkte
    RewriteRule ^(.*)-p-(.*).html$ /product_info.php?products_id=$2 [qsappend,L]

    B) in "/inc/shopstat_functions.inc.php":

    Suchen nach:

    Code: PHP  [Auswählen]
    /*
     * FUNCTION shopstat_hrefLink
     */

    function shopstat_hrefLink($cat_desc, $product_name, $product_id)
    {
        $link = "";

        if(shopstat_hrefSmallmask($cat_desc))
            {
            $link .= shopstat_hrefSmallmask($cat_desc)."/";
            }

        $link .= shopstat_hrefMask($product_name).ART_DIVIDER.$product_id.".html";

        return($link);
    }

    Ändern in:

    Code: PHP  [Auswählen]
    /*
     * FUNCTION shopstat_hrefLink
     */

    function shopstat_hrefLink($cat_desc, $product_name, $product_id)
    {
        $link = "";

        if(shopstat_hrefSmallmask($cat_desc))
            {
            // Kategorie aus dem Link raus
        //   $link .= shopstat_hrefSmallmask($cat_desc)."/";
            }
    // lowercase
        $link .= strtolower (shopstat_hrefMask($product_name)."-p-".$product_id.".html");

    return $link;
    }

    Damit sind auch gleich wie bei Ultimate SEO URLs von osCommerce 2.2 / 2.3.1 die Großbuchstaben in Kleinbuchstaben geändert.

    Eine Sache noch: Bei Ultimate SEO URLs gab's noch die Möglichkeit, Short Words aus den URLs herauszufiltern. Fand ich ganz pfiffig, weil z. B. bei Saisonartiklen sich trotz Änderung des Baujahres die URL nicht ändert. Habe das für modified eCommerce Shopsoftware schon zusammengebastelt, indem ich diese Funktion vor die 
    * FUNCTION shopstat_hrefLink gesetzt habe:

    Code: PHP  [Auswählen]
    // Function Worte mit 3 od weniger Zeichen herausfiltern
            function short_name($link, $limit=3){
                    $limit = 3;
                    $foo = @explode('-', $link);
                    foreach($foo as $index => $value){
                            switch (true){
                                    case ( strlen($value) <= $limit ):
                                            continue;
                                    default:
                                            $container[] = $value;
                                            break;
                            }              
                    } # end foreach
                    $container = ( sizeof($container) > 1 ? implode('-', $container) : $container );
                    $link = $container;
                    return $link;
            }

    Funktioniert ganz prima, nur dass ich auf eine 404 Seite komme. Muss da jetzt in der ".htaccess" auch noch was geändert werden?

    Viele Grüße,
    brok

    Matt

    • Experte
    • Beiträge: 4.241
    Wie sieht denn eine URL aus, die dabei rauskommt?

    Ich verstehe auch Teile der Funktion nicht, $limit wird als Parameter übergeben und per Default mit 3 vorbelegt, direkt danach aber nochmal überschrieben und mit 3 fest belegt, egal was übergeben wurde. Und die Switch-Anweisung hat auch was von "Das machen wir jetzt mal, weil's geht".

    franky_n

    • Experte
    • Beiträge: 4.950
    Hallo brok,

    ich hätte auch für die switch Anweisung:

    Code: PHP  [Auswählen]
                            switch (true){
                                    case ( strlen($value) <= $limit ):
                                            continue;
                                    default:
                                            $container[] = $value;
                                            break;
                            }    

    wie Matt sagt, das genommen:

    Code: PHP  [Auswählen]
                            if (strlen($value) > $limit) {
                              $container[] = $value;
                            }

    und das:

    Code: PHP  [Auswählen]
      $limit = 3;

    kann dann weg denn oben

    Code: PHP  [Auswählen]
    function short_name($link, $limit=3){

    sagst Du ja bereits:
    Wenn kein Wert für $limit angegeben wurde nimm die 3.

    Viele Grüße

    Franky

    brok

    • Fördermitglied
    • Beiträge: 11
    ^^ gut, dann halt so wie es RICHTIG geht *g* Ich setze das gleich mal um. Also Ein Artikel, der z. B.
    "Neuer Artikel 10 cm gelb" mit Artikelnummer 10 hat jetzt so einen Link:
    neuer-artikel-gelb-p-10.html

    Ich melde mich dann gleich nochmal, wie es aussieht.

    Danke, Jungs.

    brok

    • Fördermitglied
    • Beiträge: 11
    So, DEN Code habe ich optimiert. Bleibt aber noch meine vorherige Fragestellung: Warum lande ich noch auf einer 404 Seite, wenn ich den richtig angezeigten Link anklicke, fehlt noch irgendwo was?

    Das "Pro" aus dem Namen ist übrigens herausgefiltert.

    http://www.premium-shops.net/xtc3/limit-session-boardbag-1.html

    VG
    brok

    Matt

    • Experte
    • Beiträge: 4.241
    Naja, weil dein Link eben nicht zu neuer-artikel-gelb-p-10.html wird, sondern zu neuer-artikel-gelb-10.html. Es fehlt folglich das -p- und damit greift deine RewriteRule nicht mehr.

    Mach mal aus

    Code: PHP  [Auswählen]
     if (strlen($value) > $limit) {
        $container[] = $value;
    }

    das hier:

    Code: PHP  [Auswählen]
     if ($value=='p' || strlen($value) > $limit) {
        $container[] = $value;
    }

    brok

    • Fördermitglied
    • Beiträge: 11
    Hey Matt,

    oh mann, ich bin aber auch ein Stratege -.- Wenn man sich zu lange mit Sachen beschäftigt, wird man blind. Supervielen Dank für die sachkundige Hilfe. Das war die letzte Hürde, jetzt werde ich den Komplettumzug mal wagen...

    Hast du auch ein Paypal Spendenkonto für ein McD Sparmenü? ;-)

    LG
    brok

    Matt

    • Experte
    • Beiträge: 4.241
    Keine Ursache. Spendenkonto hier: https://www.modified-shop.org/spenden

    brok

    • Fördermitglied
    • Beiträge: 11
    Ok,

    dahin habe ich heute schon gespendet. ;-)

    VG

    brok

    • Fördermitglied
    • Beiträge: 11
    Vergessen: Topic Solved
    rechtstexte für onlineshop
    6 Antworten
    4998 Aufrufe
    19. Juli 2012, 12:48:49 von cannewitz
    9 Antworten
    6704 Aufrufe
    06. Dezember 2013, 19:15:45 von web28
    4 Antworten
    3433 Aufrufe
    22. Dezember 2009, 10:55:11 von derheinz
    25 Antworten
    19299 Aufrufe
    10. November 2012, 11:14:45 von zarskey