For redirection I usually use for 301:
Redirect 301 ^(www.)?velhosite\.com\.br/?people=alguem$ http://novosite.com.br/?pessoa=alguem
Redirect 301 ^(www.)?velhosite\.com\.br/uma-pagina-qualquer?people=alguem$ http://novosite.com.br/uma-pagina-qualquer?pessoa=alguem
But you can point the whole site structure from root to subdomain for example, and from there you make the redirects you need:
RewriteRule ^(.*)?$ http://novosite.com.br/$1 [R=301,L]
You can also make a condition for a particular domain:
RewriteCond %{HTTP_HOST} ^(www.)?velhosite\.com\.br$
RewriteRule ^(/)?$ http://novosite.com.br/novo-layout/ [R=301,L]
For each substitution rule, you put in the order:
rule example: ^pagina.php?a=(.*)&b=([0-9])&c=([a-z])$
, can be represented by: /a/$1/b/$2/c/$3
or /a-$1/b-$2/c-$3
or $1/$2/$3
or $1-$2-$3
or a=$1&b=$2&c=$3
You can also modify the order, for example: /c/$3/b/$2/a/$1
.
What makes the rule to be recognized is the url typed in the browser, will be interpreted and trigger the original link (the rule) on the server side.
Redirect 301 ^(www.)?velhosite\.com\.br/?people=(.*)$ http://novosite.com.br/?pessoa=$1
Redirect 301 ^(www.)?velhosite\.com\.br/(.+)?people=(.*)$ http://novosite.com.br/$1?pessoa=$2
See more information on rules in apache documentation .