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