Não é possível usar RedirectMatch
neste caso, infelizmente; a string de consulta não faz parte da string de URL com a qual o RewriteMatch
é comparado.
O segundo exemplo funciona porque a string de consulta enviada pelo cliente é reaplicada ao URL de destino. Assim, a correspondência opcional não corresponde a nada, a substituição $1
é uma string vazia, mas a string de consulta original do cliente está presa de volta.
Em vez disso, será necessária uma RewriteCond
check contra o %{QUERY_STRING}
.
RewriteCond %{QUERY_STRING} page=([^&]+)
RewriteRule ^/redirect\.php$ http://somewhereelse.com/%1? [R=302,L]