MOD_REWRITE para variáveis de URL, removendo parâmetros vazios e usando mais de 1 campo para a primeira e a segunda variáveis

Tenho uma pergunta anterior que foi respondida muito bem, mas requer uma alteração e não pude responder, por isso criei uma nova pergunta.

Eu exigi um mod_rewrite que fizesse o seguinte:

www.example.com?page=var1&cat=var2&subcat=var3&subsubcat=var4

nisso

www.example.com/var1/var2/var3/var4/

mas também abrangeu o uso opcional de var2, var3 e var4, portanto, se essas variáveis estivessem vazias, ainda funcionari

A pergunta foi respondida muito bem, mas exige uma alteração para trabalhar com diferentes opções de campo para var2, var3 e var

O código que tenho é:

RewriteEngine on
Options +FollowSymlinks -MultiViews

RewriteCond  %{QUERY_STRING} !^page= [NC]
RewriteRule ^([^/]+)/?$ /?page=$1 [L]

RewriteCond  %{QUERY_STRING} !^page= [NC]
RewriteRule ^([^/]+)/([^/]*)/?$ /?page=$1&cat=$2 [L]

RewriteCond  %{QUERY_STRING} !^page= [NC]
RewriteRule ^([^/]+)/([^/]*)/([^/]*)/?$ /?page=$1&cat=$2&subcat=$3 [L]

RewriteCond  %{QUERY_STRING} !^page= [NC]
RewriteRule ^([^/]+)/([^/]*)/([^/]*)/([^/]*)/?$ /?page=$1&cat=$2&subcat=$3&subsubcat=$4 [L]

Isso funciona, mas preciso que seja possível fazer um if-else para a escolha de qual campo está sendo usado para qual variável e para diferencia

Por exemplo, se tivermos as duas seqüências a seguir normalmente, é fácil distinguir qual campo vale para qual variável:

www.example.com?page=var1&cat=var2&subcat=var3&subsubcat=var4

www.example.com?othervar1=var1&othervar2=var2&othervar3=var3&othervar4=var4

, mas para essa sequência, é necessário distinguir para qual campo a variável é:

www.example.com/var1/var2/var3/var4/

Preciso do mod_rewrite para escolher qual está sendo usad

Além disso, quando eu realmente vou para uma pasta que existe, ela funciona corretamente. Por exemplo, se eu for para uma pasta chamada "test", que é uma pasta real:

www.example.com/test/

it usa-o como uma variável para o campo "página". Se eu usar o seguinte sem a barra final final:

www.example.com/test 

it gera o seguinte no URL:

www.example.com/test/?page=test

Eu preciso que ele funcione para pastas que existem normalmente també

Por favor, alguém pode me dizer como isso pode ser feito? Gostaria de receber qualquer ajuda para resolver este problema.

Além disso, alguém pode me dizer o que significa o bit "-MultiViews" no começo, porque eu nunca me deparei com isso ante

Obrigado

questionAnswers(1)

yourAnswerToTheQuestion