Apache Rewrite QUERY_STRING mit Arrays

converge

New Member
Hallo zusammen,

ich knoble jetzt schon einige Zeit am Rewriten diverser URL-Parameter. Die Aufgabe ist eigentlich schon gelöst, jedoch hänge ich an der Übergabe der Parameter mit [].

Ich habe einen Parameter in der URL
Code:
tx_extname_pluginname[year]=2012
Diesen möchte ich "umleiten" auf
Code:
/pfad/zur/site/2012/
Mit der folgenden RewriteRule schreibe ich um, wenn das [year] nicht mit dabei ist.

Code:
RewriteCond %{QUERY_STRING} ^tx_extname_pluginname=(.*)$ [NC]
RewriteRule ^ /pfad/zur/site/%1? [R=301,L]
Wie schaffe ich es, die eckige Klammer ebenfalls mit auszuwerten?

Code:
RewriteCond %{QUERY_STRING} ^tx_extname_pluginname[year]=(.*)$ [NC]
RewriteRule ^ /pfad/zur/site/%1? [R=301,L]
Ich nehme an, ich muss die eckige Klammer irgendwie "schützen"?

Vielen Dank für eure Hilfe
 

converge

New Member
Das hatte ich schon versucht. Die Escapes haben keine Auswirkungen.
Code:
RewriteCond %{QUERY_STRING} ^tx_extname_pluginname\[year\]=(.*)$ [NC]
RewriteRule ^ /pfad-zur/site/%1? [R=301,L]
 

converge

New Member
Ich habe es nun gelöst. Bin mir aber nicht sicher, ob dies so korrekt ist.

Da die Browser diese Zeichen "encoden", muss die Condition auf die encodeten Character angewandt werden:

Code:
RewriteCond %{QUERY_STRING} ^tx_extname_pluginname%255byear%255d=(.*)$ [NC]
RewriteRule ^ /pfad/zur/site/%1? [R=301,L]
 
Top