Url amigable con 3 parámetros con .htaccess

Que tal estoy intentando pasar esta url, la cual tiene 3 parámetros pk,torneo y liga es la siguiente:

http://localhost/web/play/pk=566539&torneo=mlb&liga=NN

y lo que quiero es lograr que se vea de la siguiente manera:

http://localhost/web/play/566539/mlb/NN

En mi archivo .htaccess tengo la siguiente configuracion:

Options +FollowSymLinks RewriteEngine on   #RewriteRule ^play/([0-9]+)$    play.php?pk=$  1  RewriteRule ^play([^/]+)/([^/]+)/(\d+)/?$   play.php?pk=$  1&torneo=$  2&liga=$  3 [L]    <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([a-z]+)\/?$   $  1.php [NC] </IfModule> 

Crear URL amigable con variable id=1

Tengo un archivo llamado colores.php en el cual selecciona de una base de datos los nombres de unos colores y los muestra con un while pasando el color_id de cada uno a una URL para abrir cada color en un fichero llamado color.php.

        <?php                 $  sql_c=mysqli_query($  con, "SELECT * FROM colores");                  while ($  row=mysqli_fetch_array($  sql_c)){                     $  color_id=$  row['color_id'];                     $  color=$  row['color'];                     $  descripcion=$  row['descripcion'];                     $  result = explode('.',$  descripcion);                      echo                      '<div class="listado">                     <hr>                     <h3><a href="color.php?id='.$  color_id.'">' .$  color. '</a></h3>                     <p class="intro">'.$  result[0].'.</p>                 </div>';                 }             ?>  

Esto hace que se genere un listado con el nombre de cada color y enlazado a cada página propia de cada color: color.php?id=1, color.php?id=2, etc…

El color 1 es el “Negro” y el 2 es el “Blanco”. Mi pregunta es ¿Cómo puedo hacer que en las URLs aparezca: https://miweb.com/color/negro.

Ahora mismo tengo esto en mi .htaccess

#URL Amigable RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)$   $  1.php 

Con esto quito las extensiones .php. Así que ahora mismo la página colores se ve en el navegador como https://miweb.com/colores, pero cuando hago clic en el color negro aparece https://miweb.com/color.php?id=1 cuando me gustaría que apareciera https://miweb.com/color/negro.

En el archivo color.php lo que hago es recoger el color_id y mostrar la información de ese color, nada más.

URL amigable usando controladores

Me gustaria saber como puedo hacer en .htaccess o como sea para que en la URL en vez de aparecer:

https://frontendtools.net/v/exec?u=Bucle-for-sin-index

aparezca esta URL amigable:

https://frontendtools.net/Bucle-for-sin-index

Estoy utilizando controladores con PHP donde v es viewController y exec es el action que llama al modelo y muestra el contenido que se imprime en la vista.

En mi htaccess tengo:

RewriteEngine On  RewriteCond %{REQUEST_FILENAME} !-f  RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule (.+)\/(.+)(\/)?$   index.php?controller=$  1&action=$  2 [QSA] 

Necesito saber qué más tengo que poner para que muestre la URL amigable como he dicho antes.

¿Cómo adaptar URL amigable o una condición que muestra siempre la información de la pagina principal?

Tengo la siguiente regla .htaccess

<IfModule mod_rewrite.c> Options -Multiviews RewriteEngine On RewriteBase /web RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$   index.php?url=$  1 [QSA,L] </IfModule> 

Que solo permite acceder al archivo existente es decir, si yo en el directorio web/ tengo los archivos demo.php, prueba.php, detail.php

Yo puedo acceder a cada información diferente que existe en esos archivos site.com/prueba.php pero si intento acceder aún archivo que no existe en el directorio me invento por ejemplo site.com/archivoquenoexiste.php este me va mostrar la información del archivo index.php y así sucesivamente siempre me va mostrar la información del archivo index.php cuando no existe el archivo que se intenta acceder.

Hasta ahí perfecto todo, pero mi problema es el siguiente necesito poder agregar las URL amigables a los productos, tengo la siguiente condición

RewriteRule ^ - [QSA,L] RewriteRule ^(.*[^/]$  ) $  1/ [R,QSA] RewriteCond %{REQUEST_URI} assets/(css|fonts|js|img)/(.+)$   RewriteRule ^(.*)$   assets/%1/%2 [L,R] RewriteRule ^([a-zA-Z0-9-/]+)$   detail.php?id=$  1 

Pero no me permite acceder al contenido de una URL amigable site.com/producto-con-url-amigable/ al intentarlo me muestra la información del archivo index.php

¿Cómo puedo adaptar las URL amigables a la condición .htaccess existente?