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
 
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]
 
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]
 
Back
Top