Curiosamente en varios de mis servidores es necesarios utilizar el signo +.
Antes de contestarte lo otro te explico algo que repito constantemente.
Para que este asunto de las urls amigables tenga sentido, hay que realizar un análisis muy exahustivo
"antes" y preveer las distintas variantes.
En tu caso, dada la nueva pregunta que hacés, se generan dudas sobre ti estructura.
Fijate, con esta regla solamente, quitando todo lo que hicimos antes
Código Apache:
Ver originalRewriteRule ^somos/(.*)$ /somos.php?id=$1 [L]
Conseguiríamos el mismo resultado, ejemplo
http://mr4.emprear.com/somos/97 http://mr4.emprear.com/somos/55
ahora, si por casualidad tambien tuieses una carpeta "somos" en la raiz, esta nunca sería accesible, si pusieses
http://mr4.emprear.com/somos/
ó
http://mr4.emprear.com/somos
te llevaría a somos.php y en id no te aparecería nada, como obviamente vos tenés decisión de como se llaman tus carpetas, podés cambiar los nombres para prevenir el problema, ó, y solo lo pongo como ejemplo, usas
Código Apache:
Ver originalRewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^somos/(.*)$ /somos.php?id=$1 [L]
Con lo cual ya sería accesible
A partir de aqui me pregunto
Todos tus php son dinámicos (reciben algún parámetro?)
tu idea cual era al ocultar la extensión? Te advierto que eso no mejora nada el seo, o simplemente querías hacer amigable la url evitando tener que poner el
?id=xxx
Se entiende a lo que me refiero?
Concluyendo, con esto conseguis las dos cosas
Código Apache:
Ver originalOptions +FollowSymLinks
RewriteEngine On
RewriteBase /
# Remover trailing slashes.
# ejemplo miweb.com/algo/ redirije a miweb.com/algo
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=permanent,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^somos/(.*)$ /somos.php?id=$1 [L]
#### si tenés mas php dinámicos lo insertás aqui, ya que al usar [L] si la regla se cumple, ya no busca mas nada en las reglas subsiguientes
# y como la primera parte de la regla es una expresión, podés usar otro valor mas descriptivo, por ejemplo
RewriteRule ^categoría/(.*)$ /somos.php?id=$1 [L]
# Redirije a PHP si existe.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L,QSA]
Ahora te resta saber que es exactamente lo que necesitas y aplicar solo lo requerido, cuantas más reglas,naturalmente, más se tarda en procesar el .htaccess
Saludos