Hola
Lo que tienes que hacerte es programar en el php una función que transforme el tag en el id, es decir, tú recibes tan sólo la variable $tags="sevilla-duplex", que sería lo que el usuario mete, y esa función lo que hace es una búsqueda contra tu base de datos para ver qué $id corresponde a tu $tags. Mal y rápido:
Código MySQL:
Ver originalmysql_query("SELECT id FROM TuTabla WHERE tag = ' . $tags . '");
etc...;
O sea, sólo con .htaccess no puedes sacar el id a partir del tag, por eso tienes que programarte una función que realice esta búsqueda en la base de datos.
Otra opción, si no tienes muchos tags, ya que si no es muy engorroso, es meter una línea de .htaccess por cada tag, de manera que asignas a mano un id a cada tag. Algo como:
Código Apache:
Ver originalRewriteEngine On
RewriteRule ^ficha=sevilla-duplex/?$ ficha.php?id=62&tags=sevilla-duplex [QSA]
RewriteRule ^ficha=madrid-mansion/?$ ficha.php?id=42&tags=madrid-mansion [QSA]
RewriteRule ^ficha=mallorca-chalet/?$ ficha.php?id=99&tags=mallorca-chalet [QSA]
Como ves esta última opción es inviable si estás continuamente metiendo y sacando registros de tu base de datos o si tienes muchos registros diferentes...
Un saludo