Enlaces planos Mod_rewrite

Estoy tratando de mostrar mis variables get como enlaces planos. Quiere cambiar de esto:

http://mydomain.com/index.php?page=shop&var1=hat&var2=10 

a

 http://mydomain.com/index.php/shop/hat/10 

Tenga en cuenta que no hay un número fijo de variables, por eso utilizo var1, var2, … etc.

[editar] Ya tengo un script parcialmente funcional, pero funciona solo con un máximo de 3 variables

 RewriteCond %{ENV:REDIRECT_STATUS} 200 RewriteRule .* - [L] RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L] RewriteRule ^([^/\.]+)/?([^/\.]+)/?$ index.php?page=$1&var=$2 [L] RewriteRule ^([^/\.]+)/?([^/\.]+)/?([^/\.]+)/?$ index.php?page=$1&var=$2&var2=$3 [L] RewriteRule ^([^/\.]+)/?([^/\.]+)/?([^/\.]+)/?$ index.php?page=$1&var=$2&var2=$3&var3=$4 [L] 

Así que primero recuerda que mod_rewrite funciona así:

 http://mydomain.com/index.php/shop/hat/10 

(qué tipo de cliente) se reescribe para

 http://mydomain.com/index.php?page=shop&var1=hat&var2=10 

(a qué sirve el cliente), pero no necesariamente se muestra como este último. (A menos que lo haga una redirección)

Asumiendo que su formato está completamente descrito aquí:

 RewriteRule ^index\.php/([^/]+)/([^/]+)/([0-9]+)$ /index.php?page=$1&var2=$2&var2=$3 

Debería ser bueno.

EDITAR:

¡Oh, por cierto! No tomé en cuenta la cantidad variable de variables. Eso no debería ser procesado por mod_rewrite, creo. Tal vez la mejor RewriteRule index.php/(.*) /index.php?call=$1 sea RewriteRule index.php/(.*) /index.php?call=$1 y luego use su script para explotar usando / delimiter.

Solo puede hacerlo si ya conoce el número de variable solo AFAIK.

Podrías dirigir todas las solicitudes directamente a index.php (llamado bootstrapping), y dejar que el script analice las variables.

Así es como se hace con Zend Framework , deberías echarle un vistazo. ZF también tiene muchas otras cosas que podrías utilizar.

Este es mi bloque de reescritura de uno de mis fantasmas con un sitio web con ZF.

  RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-s RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/favicon.ico RewriteRule ^.*$ index.php [NC,L]