Htaccess: ID-Parameter aus URL entfernen

Hallo,

habe zwei Probleme mit IDs in der URL für einen Onlineshop.

-Zum einen sollen Spider dauerhaft auf die Adresse ohne cart_id weitergeleitet werden

-und Besucher die über einen Link mit cart_id in den Shop gelangen soll dieser Parameter entfernt werden.

Eine ursprüngliche URL

http://www.shop.meine-domain.com/cgi-bin/shop/shop.cgi?katalog=1000&cart\_id=1234567.12345

soll zu dieser URL werden:

http://www.shop.meine-domain.com/cgi-bin/shop/shop.cgi?katalog=1000

Habe schon diverse Beispiele für commerceOS versucht auf meine Bedürfnisse anzupassen, aber bislang ohne Erfolg.

Hier mal mein Versuch der leider nicht zum gewünschten Erfolg geführt hat:

RewriteEngine on
RewriteBase /
#
# Skip the next two rewriterules if NOT a spider
RewriteCond %{HTTP\_USER\_AGENT} !(msnbot|slurp|googlebot) [NC]
RewriteRule .\* - [S=2]
#
# case: leading-only, trailing-only or no additional parameters
RewriteCond %{QUERY\_STRING} ^(.+)&cart\_id=[0-9a-z]+$|^cart\_id=[0-9a-z]+&?(.\*)$ [NC]
RewriteRule (.\*) $1?%1 [R=301,L]

Hoffe mir kann da jemand weiterhelfen.

Dank und Grüße

Willi

habe zwei Probleme mit IDs in der URL für einen Onlineshop.

-Zum einen sollen Spider dauerhaft auf die Adresse ohne
cart_id weitergeleitet werden

-und Besucher die über einen Link mit cart_id in den Shop
gelangen soll dieser Parameter entfernt werden.

mod_rewrite weiss aber nicht, ob der aufruf ein „in den shop gelangen“-aufruf oder ein legitimer „ich-habe-eine-cart-id“-aufruf ist.

Eine ursprüngliche URL

http://www.shop.meine-domain.com/cgi-bin/shop/shop.cgi?katalog=1000&cart_id=1234567.12345

soll zu dieser URL werden:

http://www.shop.meine-domain.com/cgi-bin/shop/shop.cgi?katalog=1000

Habe schon diverse Beispiele für commerceOS versucht auf meine
Bedürfnisse anzupassen, aber bislang ohne Erfolg.

was heisst ohne erfolg? was hast du erwartet und was ist passiert?

RewriteCond %{QUERY_STRING}
^(.+)&cart_id=[0-9a-z]+$|^cart_id=[0-9a-z]+&?(.*)$ [NC]

naja auf alle faelle fehlt da in [0-9a-z] mal der punkt aus &cart_id=1234567.12345

RewriteRule (.*) $1?%1 [R=301,L]

steht da: nimm den ganzen request und haenge ein ‚?%1‘ an?

mod_rewrite weiss aber nicht, ob der aufruf ein „in den shop
gelangen“-aufruf oder ein legitimer
„ich-habe-eine-cart-id“-aufruf ist.

Das über eine Bedingung in Bezug auf den Referrer zu regeln wäre weniger ein Problem (denke ich zumindest :smile:

Mein Problem ist wie beschrieben, daß die cart_id abgeschnitten werden soll. Hatte bislang noch nicht die Muse mich da mal durch die Tutorials zu lesen, so daß ich mit den Ausdrücken nicht zurechtkomme. Dachte wenn hier jemand firm ist könnte er die Anweisung netterweise vorgeben.

Bislang nutze ich Rewrite nur zum ersetzen entführter Bilder.

Na sollte ich ich die Lösung finden bevor jemand sie hier postet werde ich sie in jedem Fall nachreichen. Vll hilft sie ja einem anderen Ratsuchenden.