Hola,
las Url amigables son un tema apasionante y un poco más complicado que el problema que planteas.
Para empezar, yo te aconsejaría que pienses en la estructura que le quieres dar a toda tu web (menús, productos, categorías, secciones, etc) pensando también en términos SEO.
Una vez tengas clara la estructura de tu web debes crear los enlaces html
directamente amigables con parámetros que apunten a cada una de las secciones, menús, etc, como tu ejemplo:
En este caso, creo que sobran account.php y o=46, porque account.php no aporta nada y o=46 dices que es el menú "productos".
Y ahora es donde interviene .htaccess y traduce la Url amigable en la Url con parámetros que espera tu web:
En este caso:
RewriteEngine On
RewriteRule ^productos/([0-9]+)/$ account.php?o=46&r=$1 [NC,L]
Lo que está haciendo .htaccess es capturar las Url que empiezan por "productos", seguido de una barra "/", un número "([0-9]+)" y terminan en una barra "/$". Estas Url sabemos que tienen que ir a account.php?o=46 y htaccess guarda el valor numérico capturado en "([0-9]+)" en la variable $1 que se pasa como r=$1, quedando la redirección así:
Esta es la "mágia" de .htaccess, con el que se pueden hacer muchas cosas. Tengo varios artículos publicado en mi blog sobre
Url amigables con PHP y .htaccess,
El archivo .htaccess y un libro publicado
Guía básica .htaccess.
Espero que te sirva.
Un saludo!