/ / Reescrever duas condições ao mesmo tempo não está funcionando - apache, mod-rewrite, url-rewriting

Reescreva duas condições ao mesmo não está funcionando - apache, mod reescrever, url-reescrever

Eu quero reescrever o url no servidor web apache. existem 2 caminhos para o meu projeto web da seguinte forma:

1- www.test.com/folder1/folder2/index?v1=1&v2=2&v3=3 ==> quero reescrever para www.test.com/index/1/2/3

2- www.test.com/folder3/folder4/index?v1=1&v2=2&v3=3 ==> quero reescrever para www.test.com/index/1/2/3

meu código de reescrita como o seguinte:

#RewriteCond %{REQUEST_URI} !^/folder1/folder2
#RewriteRule ^(.*)$ /folder1/folder2/$1 [L]


RewriteCond %{REQUEST_URI} !^/folder3/folder4
RewriteRule ^(.*)$ /folder3/folder4/$1 [L]

Obrigado....

Respostas:

0 para resposta № 1

As reescritas que você tem parecem sugerir que seo url "www.test.com/index/1/2/3" é inserido na barra de url do navegador, você deseja reescrevê-lo internamente em qualquer um dos urls com uma string de consulta. Por razões óbvias, isso é impossível. Um url só pode (ou deve) vincular-se a outro url interno.

Se você quiser que os dois urls com uma string de consulta carreguem a mesma página, seu site será penalizado nos motores de busca por "conteúdo duplicado". É assim que você faz isso.

RewriteCond %{QUERY_STRING} ^v1=([^&]*)&v2=([^&]*)&v3=([^&]*)$
RewriteRule ^(folder1/folder2|folder3/folder4)/index$ index/%1/%2/%3 [L]

%1 através %3 são substituídos pelo primeiro, segundo e terceiro grupos de captura da condição de regravação anterior. Nesse caso, os valores de v1, v2 e v3 na string de consulta.

A documentação pode ser encontrada Aqui.