Replacing a querystring parameter value using mod_rewrite

mod-rewrite, parameters, php, query-string, replace

Solution

Try this rule:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)param1=value1(&.*)?$
RewriteRule ^index\.php$ /index.php?%1param1=newvalue1%3 [L,R=301]

Problem

I would like to map this: ``` http://www.example.com/index.php?param1=value1&param2=value2&param3=value3 (etc. ad infinitum) ``` to ``` http://www.example.com/index.php?param1=newvalue1&param2=value2&param3=value3 (etc.) ``` In other words, just change the value of a single parameter in the query string. I know what the old value is, so I am trying to match the exact text `index.php?param1=value1` and replace it with `index.php?param1=newvalue1`. I cannot seem to find any examples on how to do this using mod_rewrite. Any assistance greatly appreciated.

Original source