Reescribir la cadena de consulta

Tengo esta URL:

  oldsite.com/profile.php?uid=10 

Me gustaría volver a escribirlo a:

  newsite.com/utenti/10 

¿Cómo puedo hacer eso?

Yo escribí esto:

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

Pero $ 1 coincide con la cadena de consulta completa y no sólo con la ID de usuario.

2 Solutions collect form web for “Reescribir la cadena de consulta”

"$ 1" coincide con el primer par de corchetes en la misma línea (el RewriteRule); necesita "% 1", que coincide con el primer par de corchetes en la línea / previous / – el RewriteCond:

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

Una mejor manera sería hacerlo con sólo 1 línea (una RewriteRule), pero no se puede hacer eso si el uid está en QueryString.

 <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> 

el punto es usar% 1, no $ 1

  • ModRewrite combinar sitios a uno
  • Acceda a Rails en / app /, no / app / public /
  • Necesidad de networkingirigir todos los no www a www y todos los https al subdominio
  • RewriteRule funciona con patrón de "coincidir con todo" pero no con el patrón de directory
  • cómo bloquear los ataques con rewriterule?
  • MOD_REWRITE RULE -L -R
  • Conversión de la regla de reescritura de htaccess a nginx
  • Problemas de .htaccess de FreeBSD Server.
  • Lighttpd y OpenCart GET requestes con mod_rewrite
  • Apache mod_rewrite Tome @ 2x fuera de la request de image uri
  • regla de reescritura
  • Mod_rewrite no funciona en ISPConfig 3 Server
  • Necesidad de volver a escribir a less que una regla esté emparejada
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.