Justamente anoche me quedé leyendo sobre mod_rewrite en el sitio de Apache y demás y cuando acordé eran las 3 AM.
Recuerda siempre como funciona mod_rewrite de Apache, al crear una regla uno le "enseña" a Apache a que interprete la URL amigable como la URL no-amigable (la real).
La regla que tú tienes es para una variable, pero tu necesitas dos variables ahora, pues tienes,
miweb.com/perfil/nombreusuario
donde perfil y nombreusuario son las variables.
Modificando la regla que tienes, para dos variables tenemos:
Código Apache:
Ver originalRewriteRule ^([a-zA-Z0-9])/([a-zA-Z0-9])$ index.php?var1=$1&var2=$2 [L,NC]
donde index.php es el script que recibirá las dos variables.
En index.php el código a usar sería:
Código PHP:
Ver original// Capturamos las variables y las convertimos en matriz como si fuera $_GET
$variables = explode('/',$_SERVER['REQUEST_URI']);
// Y aquí ya jugamos con las variables como querramos
echo "Variable 1:".$variables[0];
echo "Variable 2:".$variables[1];
Lo que desconozco y no he logrado es hacer una regla para que no importa cuantas variables pase las reescriba. Es decir, que si entro con miweb.com/var1 le pase var1 al script index.php de la misma forma que si entro con miweb.com/var1/var2 le pase las dos variables a index.php. Intenté colocando las dos reglas, para una variable y para dos en el htaccess pero no me las toma a las dos...