Reescribir la cadena de consulta

Tengo esta URL:

  oldsite.com/profile.php?uid=10 

Me gustaría volver a escribirlo a:

  newsite.com/utenti/10 

¿Cómo puedo hacer eso?

Yo escribí esto:

  RewriteCond% {QUERY_STRING} ^ uid = ([0-9] +) $
 RewriteRule ^ profile \ .php $ http://www.newsite.com/utenti/$1 [R = 301, L] 

Pero $ 1 coincide con la cadena de consulta completa y no sólo con la ID de usuario.

"$ 1" coincide con el primer par de corchetes en la misma línea (el RewriteRule); necesita "% 1", que coincide con el primer par de corchetes en la línea / previous / – el RewriteCond:

RewriteCond %{QUERY_STRING} ^uid=([0-9]+)$ RewriteRule ^profile\.php$ http://www.newsite.com/utenti/%1 [R=301,L] 

Una mejor manera sería hacerlo con sólo 1 línea (una RewriteRule), pero no se puede hacer eso si el uid está en QueryString.

 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_NAME} ^oldsite.com$ RewriteCond %{QUERY_STRING} uid=([0-9]+) RewriteRule ^/profile\.php http://newsite.com/utenti/%1 [NC,R=301,L] </IfModule> 

el punto es usar% 1, no $ 1