In my MVC application I use a uri router than determines which controller and action to use and detects GET parameters from the uri. I\'ve written it so that it will accept
If you really want to redirect requests of the form /controller/action?param1Name=param1Value
to /controller/action/param1Name/param1Value
, try this:
RewriteCond %{THE_REQUEST} ^GET\ /[^/]+/[^/]+\?[^\s]+
RewriteCond %{QUERY_STRING} ^([^=&]+)=([^&]+)&?(.*)
RewriteRule ^[^/]+/[^/]+.* /$0/%1/%2?%3 [N]
RewriteCond %{THE_REQUEST} ^GET\ /[^/]+/[^/]+\?[^\s]+
RewriteRule ^[^/]+/[^/]+.* /$0 [L,R=301]
But if you want to opposite way:
RewriteRule ^([^/]+/[^/]+)/([^/]+)/([^/]+)(/.*) $1$4?$2=$3 [QSA]