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 № 1As 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.