[mod_rewrite] Probleme mit Special Chars

Knalltuete

Lieutenant
Registriert
Aug. 2006
Beiträge
536
Ich habe heute zum ersten mal eine URL bei der ich keine Ahnung habe wie ich diese in eine RewriteRule verpacken kann.

2 Beispiele:

http://localhost/run/isa.dll?Indukat/LEBENSMITTEL//*1000,2 soll nach example.com weiterleiten
http://localhost/run/isa.dll?Indukat.131852/PRODUKT2/471525376/1000,2 soll nach example.com/pfad weiterleiten

Ich habe nun versucht alles mit einem \ zu escapen, was aber keinen Erfolg brachte.

Code:
RewriteRule ^run/isa.dll\?Indukat/LEBENSMITTEL//\*1000\,2$ http://example.com/ [L,R=301]

Danach habe ich es noch mit %{QUERY_STRING} probiert, aber auch hier keine Chance.
Code:
RewriteCond %{QUERY_STRING} ^(.*)Indukat/LEBENSMITTEL//\*1000\,2$
RewriteRule ^run/isa.dll$ http://www.example.com/pfad/? [R=301,L]


Ich hoffe jemand von euch kann mir helfen :)
 
evtl. musst du auch "/" und "\" escapen

du kannst auch checken, ob das erste zeichen keine zahl ist:
LEBENSMITTEL//[^\d]1000....

"," sollte man nicht escapen müssen, "." aber schon
 
vielleicht etwas weniger strikt wenn du dann eh mit Platzhaltern arbeitest
Code:
RewriteCond %{QUERY_STRING} Indukat/LEBENSMITTEL//\*1000,2$
RewriteRule ^run/isa.dll http://www.example.com/pfad/? [R=301,L]
 
wie steht es damit
Code:
RewriteCond %{QUERY_STRING} Indukat/LEBENSMITTEL//\*1000,2$
RewriteRule ^(.+)$ http://www.example.com/pfad/ [R=301,L]
 
In die Richtung hatte ich schon getestet, hatte leider aber nichts gebracht.

Ich teste das momentan auf http://htaccess.madewithlove.be/ da kann man schön sehen was passiert. Aber bisher habe ich noch keine Lösung finden können.. Auch Google will mir nicht wirklich weiterhelfen.
 
Zurück
Oben