Reescrever String de Consulta

1

Eu tenho este URL:

oldsite.com/profile.php?uid=10

Gostaria de reescrevê-lo para:

newsite.com/utenti/10

Como posso fazer isso?

Eu escrevi isto:

RewriteCond %{QUERY_STRING} ^uid=([0-9]+)$
RewriteRule ^profile\.php$ http://www.newsite.com/utenti/$1 [R=301,L]

Mas $ 1 corresponde à string de consulta completa e não apenas ao ID do usuário.

    
por collimarco 07.08.2009 / 16:13

2 respostas

1

"$ 1" corresponde ao primeiro par de colchetes na mesma linha (o RewriteRule); você precisa de "% 1", que corresponde ao primeiro par de colchetes na linha / anterior / - o RewriteCond:

RewriteCond %{QUERY_STRING} ^uid=([0-9]+)$
RewriteRule ^profile\.php$ http://www.newsite.com/utenti/%1 [R=301,L]

A melhor maneira seria fazer isso com apenas 1 linha (um RewriteRule), mas você não pode fazer isso se o uid estiver na QueryString.

    
por 07.08.2009 / 16:40
0
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{SERVER_NAME} ^oldsite.com$
        RewriteCond %{QUERY_STRING} uid=([0-9]+)
        RewriteRule ^/profile\.php http://newsite.com/utenti/%1 [NC,R=301,L]
</IfModule>

o objetivo é usar% 1, não $ 1

    
por 07.08.2009 / 16:47