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: Bestimmte Urls per rewrite umleiten

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Bestimmte Urls per rewrite umleiten
    am: 22. Januar 2010, 15:56:53
    Hallo,

    wie kann man mit mod_rewrite eine bestimmte Shop-URL auf eine andere Shop-URL umleiten lassen ?
    Im konkreten Fall möchte ich von einer Kategorie ohne Produkte auf eine Content-Seite umleiten.

    Folgendes Beispiel klappt leider nicht:

    RewriteRule ^(.*)$ /shop/kategorie/produktkategorie/unterkategorie:::13_123_123.html [/shop/shop_content.php?coID=8] [R=301,L]
    Habt Ihr 'ne Idee, wo der Fehler ist?

    Dankeschön

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

    jkatzorke

    • Frisch an Board
    • Beiträge: 77
    Bestimmte Urls per rewrite umleiten
    Antwort #1 am: 23. Januar 2010, 02:40:56
    Hallo,

    ich gestehe, daß ich nur begrenzt Ahnung von mod_rewrite habe und auch oft nachschlagen muss...

    Aber sehe ich das richtig, daß Du zweimal Flags hast?
    Die korrekte Syntax lautet ja

    RewriteRule Pattern Substitution [flags]
    ^ und $ begrenzen doch einen Ausdruck, oder?

    Demnach würde

    RewriteRule ^(.*)$ /shop/kategorie/produktkategorie/unterkategorie:::13_123_123.html [R=301,L]
    bedeuten: leite alle Anfragen in die Unterkategorie.

    Ich glaube, Du suchst

    RewriteRule ^shop/kategorie/produktkategorie/unterkategorie:::13_123_123.html$ shop/shop_content.php?coID=8 [R=301,L]
    Gruß Johannes

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Bestimmte Urls per rewrite umleiten
    Antwort #2 am: 23. Januar 2010, 11:45:59
    Hallo Johannes,

    vielen Dank für den Tipp.

    Ich habe das hier versucht, doch leider leitet es noch nicht auf die Contentseite um, wenn ich die bestimmte Kategorie (unterkategorie) anklicke:

    RewriteRule ^shop/kategorie/produktkategorie/unterkategorie:::13_123_123.html$ shop/shop_content.php?coID=8 [R=301,L]

    jkatzorke

    • Frisch an Board
    • Beiträge: 77
    Bestimmte Urls per rewrite umleiten
    Antwort #3 am: 23. Januar 2010, 12:36:04
    Sorry, ich hatte gestern bzw. heut Nacht keinen Code zur Hand...

    Bei mir habe ich jetzt folgendes erfolgreich getestet:

    RewriteRule ^Shopsystem:_:1:info:1:Erweiterungen.html$ /shop_content.php?coID=2 [R=301,L]
    Das Problem ist, daß ich nicht weiß, wie sich das mit den Slashes "/" verhält...
    Müssten die evtl maskiert werden? Wie Du siehst, arbeite ich mit Shopstat und eigenen Trennzeichen :info: steht z. B. für das Infocenter.

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Bestimmte Urls per rewrite umleiten
    Antwort #4 am: 23. Januar 2010, 20:37:14
    puuh, rewrite ist nicht so mein Ding.
    An welche Stelle der .htaccess hast du dein Beispiel gesetzt, evtl. liegt es daran ?
    Ich hab's direkt über den Shopstat-Teilen für die Kategorien gesetzt.

    Oder brauch ich noch sowas ?

    RewriteCond %{REQUEST_URI} (.*):.:([_0-9]+):([_0-9]+)\.html$
    Das man die / maskieren müsste, konnte ich nix finden. Scheinbar geht es so.

    jkatzorke

    • Frisch an Board
    • Beiträge: 77
    Bestimmte Urls per rewrite umleiten
    Antwort #5 am: 23. Januar 2010, 22:09:55
    Stimmt, das hatte ich vergessen zu sagen...

    Du musst natürlich die Position beachten.
    Deshalb ist u. a. auch die Begrenzung mit ^ und $ wichtig.

    Von einer "logischen Sortierung" ausgehend würde es bedeuten, daß Du ähnliche Abfragen in Absteigender Folge angibst:

    RewriteCond %{REQUEST_URI} (.*):.:([_0-9]+):(.*)\.html$
    RewriteCond %{REQUEST_URI} (.*):.:([_0-9]+)(.*)\.html$
    RewriteCond %{REQUEST_URI} (.*):.:(.*)\.html$

    ACHTUNG! Ich habe Deine Abfrage als Beispiel etwas verändert...
    Es kommt auf den genauen Aufbau an, ob die Reihenfolge wichtig ist oder nicht.

    Die letzte prüft auf irgendwas:.:irgendwas.html
    Findet er das, sucht er natürlich nicht mehr nach irgendwas:.:zahlen+irgendwas.html

    Stell Deine Regel mal ganz an den Anfang, nur um zu testen.

    Ich habe die Shopstat-Änderungen aus diesem Grund auch ein wenig umgeschrieben, damit ich weniger auf die Reihenfolge achten muss.

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Bestimmte Urls per rewrite umleiten
    Antwort #6 am: 23. Januar 2010, 22:14:37
    Also, wenn ich

    RewriteRule ^shop/kategorie/produktkategorie/unterkategorie:::13_123_123.html$ shop/shop_content.php?coID=8 [R=301,L]
    direkt nach

    RewriteEngine on
    setze, also möglichst weit an den Anfang, dann will es auch nicht :(

    guensi

    • Viel Schreiber
    • Beiträge: 2.288
    Bestimmte Urls per rewrite umleiten
    Antwort #7 am: 23. Januar 2010, 22:56:54
    Nach meiner Erfahrung gibts bei den Providern geringe aber entscheidende Unterschiede in der Syntax für modrewrite-Anweisungen.

    Aber eins ist immer gleich, ein verweis auf den root beginnt mit /

    Deiner Syntax zufolge nehme ich an der Shop liegt im ordner shop. Dann solltest du folgendes mal versuchen:

    RewriteRule ^/shop/kategorie/produktkategorie/unterkategorie:::13_123_123.html$ /shop/shop_content.php?coID=8 [R=302,L]
    Sollte das nicht funktionieren, mal beim Provider nachfragen, obs da bestimmte Eigenheiten gibt.

    Beachte auch das R=302 - denn du willst ja keine leere Kategorie auf ewig in den Content umleiten, sondern nur temporär. Dann muss das 302 heissen, sonst registrieren die Suchmaschinen das als permanente Umleitung, was ja wohl nicht gewollt ist.

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Bestimmte Urls per rewrite umleiten
    Antwort #8 am: 23. Januar 2010, 23:17:17
    Hallo guensi,

    vielen Dank für deine Tipps.

    Genau, der Shop liegt im Unterzeichnis /shop
    Leider will es auch mit deiner Version noch immer nicht klappen. Keine Fehlermeldung, aber auch keine Umleitung.

    guensi

    • Viel Schreiber
    • Beiträge: 2.288
    Bestimmte Urls per rewrite umleiten
    Antwort #9 am: 23. Januar 2010, 23:25:27
    Gut möglich, dass er die Suchmaschinenfreundliche URL "missversteht" mal ins Blaue geschossen - maskiere mal die ":"

    RewriteRule ^/shop/kategorie/produktkategorie/unterkategorie\:\:\:13_123_123.html$ /shop/shop_content.php?coID=8 [R=302,L]

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Bestimmte Urls per rewrite umleiten
    Antwort #10 am: 23. Januar 2010, 23:28:36
    hmm, schade, das war auch nicht. Aber immer noch ohne Fehlermeldung wie bei den Vorschlägen von Johannes.
    Hatte auch schon wegen Maskieren gesucht, aber nix gefunden, scheinbar muss man es nicht maskieren.

    guensi

    • Viel Schreiber
    • Beiträge: 2.288
    Bestimmte Urls per rewrite umleiten
    Antwort #11 am: 23. Januar 2010, 23:34:29
    Naja, bin auch nicht so der Crack für modrewrite, muss da auch immer bei "Apache 1.3 URL Rewriting Guide" nachlesen und solange testen bis das klappt.

    Und manches liegt wie gesagt an Eigenheiten des Providers. Bevor du da noch Stunden damit verbastelst, frag doch einfach mal nach.

    EDIT: Was macht er denn wenn er keine Fehlermeldung ausgibt, findet er dann einfach die leere Kategorie?

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Bestimmte Urls per rewrite umleiten
    Antwort #12 am: 23. Januar 2010, 23:44:53
    Hallo guensi,

    wenn keine Fehlermeldung kommt, aber es dennoch nicht funktioniert, dann schreibt es "Artikel wurde nicht gefunden"
    Weil die Kategorie keine Produkte hat.

    Hab da auch so einiges rumgegoogelt, aber irgendwie werd ich da ned schlau draus.
    Hab mittlerweile einige Beispiele, auch aus Google, durch.
    Bin mir auch nie sicher, ob es an sich richtig wäre, aber xtc oder shopstat irgendwie reinpfuscht oder ob dann die Regeln zum Rewrite der Kategorien greifen und das für die eine spezielle Kategorie quasi wieder überschrieben wird.

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Bestimmte Urls per rewrite umleiten
    Antwort #13 am: 23. Januar 2010, 23:54:58
    Ist ja toll, ich habs Leute :)

    Also direkt nach

    RewriteEngine on
    Hab ich folgendes eingefügt:

    RewriteCond %{REQUEST_URI} ^/shop/kategorie/produktkategorie/unterkategorie:::13_123_123.html  [NC]
    RewriteRule ^(.*) /shop/shop_content.php?coID=8 [R=302,L]

    jkatzorke

    • Frisch an Board
    • Beiträge: 77
    Bestimmte Urls per rewrite umleiten
    Antwort #14 am: 24. Januar 2010, 00:50:51
    also eigentlich müsste es dann auch nur mit rewriterule ohne condition funktionieren.

    denn so wird nur gefragt, ob das muster in der url vorkommt. wenn ja, leite alle anfragen um...

    mir fällt grad auf, dass die substitution jetzt mit einem slash beginnt, den hattest du vorher nicht, oder?

    im zusammenhang mit unterverzeichnissen klingelt bei mir irgendwas mit rewritebase...
    evtl stimmt da noch etwas nicht 100%ig

    wie gesagt, meine lösung funktioniere auf meinem server, notfalls frag wirklich bei deinem hoster nach...

    0 Antworten
    1272 Aufrufe
    26. März 2019, 13:38:23 von eronweb
    7 Antworten
    4375 Aufrufe
    12. Februar 2012, 19:37:13 von Matt
    12 Antworten
    3775 Aufrufe
    20. Dezember 2016, 14:57:31 von total10