gelöst RewriteRule - Von Modified nach Gambio

Thema wurde von dmun, 23. Juli 2019 erstellt.

  1. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    Hallo,

    kann man die "alten" Modified URLs über eine Rewrite-Regel so anpassen, dass dies dann auch für Gambio passen ?
    Habe jetzt SEO im Gambio Testshop aktiviert, aber leider von den Rewrite-Regeln keine Ahnung, konnte auch im Forum nichts finden.

    Ich vermute es geht in erster Linine um diese Regel aus der .htaccess von Modified:
    RewriteRule (.*)::(.+)\.html$ product_info.php?products_id=$2 [QSA,L]

    Nur wie passe ich diese an ???

    Grüße, Dirk
     
  2. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Ich bin bei den modified URLs nicht wirklich drin. Gib mal bitte eine vollständige modified Beispiel URL, dann kann man die mal auf Bausteine analysieren.
     
  3. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    sieht so aus:

    WWW.SHOPADR.DE/Gehaeuse/TT-Gehaeuse-Metall/TT-Chassis-Typ-056-STOMP-2::8657.html

    ich vermute, die Zahl hinter den :: ist die Produkt-ID und die muss jetzt irgendwie ausgewertet werden aber da müsste
    die alte Regel doch noch greifen.

    Dachte irgendwie so in der Art:
    RewriteRule (.*)::(.+)\.html$ product_info.php?info=p$2 [QSA,L]
    Funktioniert aber nicht, oder muss da noch Cache geleert oder neu aufgebaut werden ?
     
  4. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    #4 Wilken (Gambio), 23. Juli 2019
    Zuletzt bearbeitet: 23. Juli 2019
    Ich hab gerade mal kurz geschaut. Meinst du eine solche Produkt URL:

    https://www.shop.de/Testkategorie-1/Testartikel-3::3.html

    Ok, das hinter den 2 Doppelpunkten scheint wirklich die Produkt ID zu sein. War auch mal kurz im modified Demoshop. Nach sowas kann man ganz passabel in der URL suchen. Müsste so funktionieren, habs gerade mal trocken gebaut:

    Code:
    RewriteRule ^.*[a-z,A-z,0-9,\/,\-]+::([0-9]+).html.* %{ENV:BASE}product_info.php?info=p$1 [PT,L]
    
    Müsste analog mit Kategorien funktionieren, die haben wohl 3 Doppelpunkte:

    Code:
    RewriteRule ^.*[a-z,A-z,0-9,\/,\-]+:::([0-9]+).html.* %{ENV:BASE}index.php?cat=c$1 [PT,L]
    
    Und für Contents dient dann wohl 1 Doppelpunkt...

    Code:
    RewriteRule ^.*[a-z,A-z,0-9,\/,\-]+:([0-9]+).html.* %{ENV:BASE}shop_content.php?coID=$1 [PT,L]
    
    Hilfreich beim formulieren von Rewrite Bedingungen sind immer Tools wie https://regex101.com/
     
  5. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    Leider nicht: "Die Suche ergab keinen Treffer".

    Wie müsste das Ergbnis am Ende aussehen, so:
    product_info.php?gm_boosted_product =8657

    Kann man die Regeln irgendwie debuggen ?
     
  6. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Bis auf das Leerzeichen vor dem Gleich-Zeichen, ja. In URLs sollte es nie Leerzeichen geben, wenn irgendwo eins ist hat man immer irgendwas falsch gemacht.

    Der Tester aus dem Beispiel eben hilft beim debuggen.

    gnome-shell-screenshot-BMYP5Z.png

    Rot = Bedingung, vorderer Teil der Rewrite-Regel
    Blau = Erklärung der Bedingungsbestandteile
    Grün = Beispieleinsetzung, Grün im grünen= hervorgehobener Regeltreffer
    Gelb = Regeltreffer in eigener Darstellung

    Der erste Regeltreffer landet in $1, der zweite würde in $2 landen,...
     
  7. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    Ist beim zusammen kopieren passiert. Mich wundert jetzt nur , dass diese URL NICHT geht: product_info.php?gm_boosted_product=8657
    aber diese URL geht: product_info.php?info=p8657

    darauf habe ich die Rewrite Regel angepasst auf
    RewriteRule ^.*[a-z,A-z,0-9,\/,\-]+::([0-9]+).html.* %{ENV:BASE}product_info.php?info=p$1 [PT,L]

    Aber diese geht dann wiederum nicht. :mad::mad: URL geprüft auf https://regex101.com/ und $1 sollte 8657 erhalten.
    Stimmt noch etwas nicht mit der Einstellung ?

    Noch etwas vergessen: der Testshop ist in einem Unterverzeichnis installiert, es müsst also lauten:
    www.shop.de/gambio/product_info.php?info=p8657

    RewriteBase steht auf
    RewriteBase /

    Dies geht aber auch nicht
    RewriteBase /gambio

    Noch eine Idee ?
     
  8. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Shit, das erste war mein Fehler, du hast recht: gm_boosted_product ist falsch, info als parameter ist richtig. Ich hab das im Beispiel mal korrigiert.

    Die RewriteBase immer auf / stehen lassen. Die wird dynamisch ermittelt und steht in der Variable Base.

    Den Rest krieg ich trocken kaum beurteilt. Mach mal ein Ticket, schreib rein zu meinen Händen. Eine konkrete alte URL und eine neue rein, dann üben wir kurz am Objekt.
     
  9. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    okay, mache ich später fertig, muss nochmal wech....
     
  10. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    Ticket erstellt
     
  11. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Leider keine FTP Daten im Portal um was ausrichten zu können. Magst du die nachtragen? Hab ich auch im Ticket drum gebeten.
     
  12. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    habe auch drauf geantwortet. Ich arbeitet nicht mit ftp, nur mit scp kann aber die Regel auch in die .htaccess einbauen.

    Grüße, Dirk
     
  13. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Vorsicht vor scp! Das gilt inzwischen als unsicher und wird wohl nicht fixbar sein, auch darum wird gerade langsam überall der Support dafür eingestellt. Davon sollte man weg:

    aus https://www.openssh.com/txt/release-8.0

    SFTP ginge auch. Das nutzt ebenfalls SSH abgesicherte Tunnel, hat aber keine bekannten Designfehler.

    Gibts SFTP?
     
  14. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    habe Dir eine ftp-Server eingerichtet, Info kommt per eMail
     
  15. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Prima, dann kriegen wir das heute wohl hin.
     
  16. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Eben bearbeitet, das hier funktioniert, Auszug aus der .htaccess Datei

    Code:
    # -----------------------------------------------------------------------------
    # Put your own Redirects and Rewrites here - Start
    # -----------------------------------------------------------------------------
      
    # Example Redirect
    # Redirect 301 /oldlocation http://www.domain.com/newlocation
    
    RewriteRule ^.*[a-z,A-z,0-9,\/,\-]+::([0-9]+).html.* %{ENV:BASE}product_info.php?info=p$1 [PT,L]
    RewriteRule ^.*[a-z,A-z,0-9,\/,\-]+:::([0-9]+).html.* %{ENV:BASE}index.php?cat=c$1 [PT,L]
    RewriteRule ^.*[a-z,A-z,0-9,\/,\-]+:([0-9]+).html.* %{ENV:BASE}shop_content.php?coID=$1 [PT,L]
    
    # -----------------------------------------------------------------------------
    # Put your own Redirects and Rewrites here - End
    # -----------------------------------------------------------------------------
    
     
  17. dmun

    dmun Erfahrener Benutzer

    Registriert seit:
    2. Juni 2019
    Beiträge:
    298
    Danke erhalten:
    27
    Danke vergeben:
    6
    Funktioniert - alle Daumen hoch !