Foros del Web » Administración de Sistemas » Apache »

Re-direccionamiento 301 .htaccess con variables

Estas en el tema de Re-direccionamiento 301 .htaccess con variables en el foro de Apache en Foros del Web. Buenas, Llevo unos días probando, leyendo, peleándome, volviendo a leer... y no encuentro la solución. Tengo lo una web antigua con direcciones tipo: http://www.midominio.com/pagina.php?_var1=Valor&_var2=19 y ...
  #1 (permalink)  
Antiguo 20/06/2010, 08:49
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Re-direccionamiento 301 .htaccess con variables

Buenas,

Llevo unos días probando, leyendo, peleándome, volviendo a leer... y no encuentro la solución.

Tengo lo una web antigua con direcciones tipo:
http://www.midominio.com/pagina.php?_var1=Valor&_var2=19

y quiero pasarlo a:
http://www.midominio.com/directorio/19-texto.php

una URL amigable de:
http://www.midominio.com/directorio/pagina.php?_var2=19


Estoy probando con esto, pero el 301 no hay manera.

Código:
Options -Indexes
RewriteEngine on

rewriterule ^pagina.php?_var1=Valor&_var2=([0-9]*)$ http://www.midominio.com/directorio/$1-texto.php [r=301,nc]

RewriteRule ^directorio/([0-9]*)-(.*)$ directorio/pagina.php?_var2=$1 [QSA]
  #2 (permalink)  
Antiguo 20/06/2010, 09:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Re-direccionamiento 301 .htaccess con variables

En vez de hacer el cambio en el htaccess usa PHP para convertir la dirección a amigable. ¿Cómo podría detectar cuando una ruta es amigable o no? Puedes usar RewriteCond con QUERY_STRING, te recomiendo que busques en internet hay mucho material al respecto. Un ejemplo para que te hagas de una idea.
Código Apache:
Ver original
  1. # % -> puedes quitar esta linea es para evitar un error que produce el highlight al usar el simbolo de porciento
  2. RewriteEngine On
  3. RewriteCond %{QUERY_STRING} ^.+$
  4. RewriteRule ^.*$ http://www.example.com/redireccionar.php [L,QSA]
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 20/06/2010, 10:32
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Re-direccionamiento 301 .htaccess con variables

Gracias por contestar.

El error no lo tengo a pasar a amigable. La amigable me funciona bien... lo que no consigo es hacer una redirección 301, la web no se redirecciona, se queda como si no le valiera la regla. No se si es por las variables o por qué.

Lo he intentado, pero las variables tampoco se llaman igual en una y otra...

Lo que busco resumiendo, es que cuando alguien vaya a esta pagina con variables se redireccione a la siguiente:

de: www.midominio.com/pagina.php?_variable=xx
a: www.midominio.com/directorio/xx-texto-de-relleno.php

he intentado utilizar el QUERY_STRING pero me duelve la misma estructura de variables y la nueva página no las tiene así.

He pensado en hacer la redirección 301 en la cabecera php de la antigua, pero me gustaría poder borrar las antiguas páginas del servidor.
  #4 (permalink)  
Antiguo 20/06/2010, 18:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Re-direccionamiento 301 .htaccess con variables

No leíste el mensaje que te deje bien. Lo que te indiqué fue que en vez de convertir la dirección a amigable, como lo quieres hacer en el htaccess lo hagas con PHP. y luego lo rediriges usando header con la dirección que transformaste.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: htaccess, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:09.