lo que pasa es que no sabes lo que estas haciendo.
esto:
^anuncio/(.+)(.+)/$
quiere decir lo siguiente
^anuncio = empieza con "anuncio"
/ = slash que divide las variables
(.+) = esto captura las variables, nada que ver con que pongas signos de mas o guiones medios.
/$ = esto es que tiene que terminar con slash la url
para que te dé como quieres solo es esto:
^anuncio/(.+)/$
es casi como dijo el compañero solo que en vez de los .* a ti te sirven los .+ no se por que pero a mi tambien me pasa, y lo que quieren decir los .+ entre parentesis es que capturan todo lo que este despues de anuncio/ y antes de /
aqui el problema es que tienes que separar las variables con varios guiones por eso no identifica cada valor pasado por get.
si tú pones esta regla en tu .htaccess
RewriteRule ^anuncio/(.+)/(.+)/$ anuncio.php?ads=$1&id=$2 [L,QSA]
y en tu archivo anuncios.php escribes esto:
Código PHP:
Ver originalecho $_GET['ads'];
echo "<br/>";
echo $_GET['id'];
y en tu url escribes esto:
www.dominio.com/anuncio/balones-verdes/1/
obtendrás esto:
balones-verdes
1
lo que indica que si toma las variables, ponerlo como tu quieres siendo dos variables, no es viable o por lo menos no s me ocurre nada, es mejor separar cada variable con un slash.