Foro de Xeoweb Foro de Posicionamiento y Buscadores
Aprendiendo a Promocionar Páginas Web.
Xeoweb :: Sindicar
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entre para ver sus mensajes privadosEntre para ver sus mensajes privados   LoginLogin 
Duda sobre rediccionamiento 301

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Lenguajes de Programación Web
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Prometeo
Busco en Dmoz


Registrado: 06 May 2006
Mensajes: 176

MensajePublicado: Jue Jul 26, 2007 12:07 am    Asunto: Duda sobre rediccionamiento 301 Responder citando

Hola a tod@s,

Ante todo gracias anticipadas por vuestras respuestas.

Tengo un problema con un rediccionamiento 301, si bien normalmente redirecciono sin problemas con este texto:

redirect 301 /pagina.com/pagina.htm http://www.pagina.com/nuevapagina.htm

Ahora deseo redireccionar la página:

http://www.pagina.com/index.php?catSearch=15&limit=9

a

http://www.pagina.com/urlamigable.php

¿Qué texto tendría que poner para que funcionara?. Porque he probado lo anterior y no hay manera.

También si fuera posible utilizar algún tipo de comodín para que todas las catSearch=15 redireccionaran a urlamigable.php mejor que mejor ya que así no habría problema cuando aparecieran diferentes limit.

Espero haberme explicado bien, cualquier duda me comentaís.

Gracias!
_________________
Blog Gratis sobre Gadgets
Página sobre Frases
Volver arriba
Ver perfil de usuario Enviar mensaje privado
JustMe
Vivo en Xeoweb


Registrado: 27 Sep 2005
Mensajes: 2858
Ubicación: Por ahí....

MensajePublicado: Jue Jul 26, 2007 12:55 am    Asunto: Re: Duda sobre rediccionamiento 301 Responder citando

Prometeo escribió:
... si bien normalmente redirecciono sin problemas con este texto:

redirect 301 /pagina.com/pagina.htm http://www.pagina.com/nuevapagina.htm

Ahora deseo redireccionar la página:

http://www.pagina.com/index.php?catSearch=15&limit=9

a

http://www.pagina.com/urlamigable.php

¿Qué texto tendría que poner para que funcionara?. Porque he probado lo anterior y no hay manera.


mod_rewrite en Apache usa un motor de expresiones regulares, en regex, el símbolo "?" significa "la expresión anterior cero o una vez" , por lo tanto, debes hacer que el carácter "?" lo interprete no como un operador sino como un carácter literal, para ello, debes "escaparlo" con el símbolo "\".
Por ejemplo:

Código:
Redirect 301 ^index.php\?catSearch=15&limit=9 http://www.pagina.com/urlamigable.php

Que, incidentalmente no funciona. No obstante,

Código:
RewriteEngine on
RewriteRule   ^index.php\?catSearch=15(.*)$   http://www.pagina.com/urlamigable.php [R=301]


Debería funcionar, redirige todas las catSearch=15 hacia tu página amigable pero no pasa los parámetros, si los necesitas, tienes que se más especifico acerca de tu página amigable y lo que esta hace, después de todo no parece urlamigable.php parece urlmisteriosa,php.

Nota también que index.php reside en el directorio raíz (/), y que allí no debo poner nunca ni el protocolo (http://) ni el nombre del dominio. En la segunda parte (el destino) si pongo la URL completa.
Una forma que en este caso sería más sencilla y directa y probablemente resolvería tu segundo problema que no entendí muy bien sería hacerlo en php, poniendo al inicio de index.php

Código:
if (!empty($_REQUEST['catSearch']) && $_REQUEST['catSearch']==15){
   header('HTTP/1.1 301 Moved Permanently');
   header('Location: http://ladireccionadondequieresquevaya');
}


Desde luego, como yo no sé que es "urlamigable.php" no sé si se creará con esto una redirección infinita, ¿Es "urlamigable.php" un archivo físico?, es decir, ¿Existe? o ¿Es el mismo index.php con algún rewrite aplicado?
Cita:
También si fuera posible utilizar algún tipo de comodín para que todas las catSearch=15 redireccionaran a urlamigable.php mejor que mejor ya que así no habría problema cuando aparecieran diferentes limit.

Espero haberme explicado bien, cualquier duda me comentaís.

Segundas partes nunca fueron buenas y esta no la entendí claramente, pero quizás lo que te puse arriba en php te haga el truco.
_________________
PHP Data uri fier
Blog Gratis
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Prometeo
Busco en Dmoz


Registrado: 06 May 2006
Mensajes: 176

MensajePublicado: Jue Jul 26, 2007 3:43 pm    Asunto: Responder citando

Muchas gracias por la ayuda JustMe!

Siento haberte dado pocos datos, lamentablemente lo que me comentas no funciona por lo que intentaré darte todos los datos que pueda, agradeciéndote tu ayuda por anticipado.

Mi duda se refiere a la página http://www.jugones.net/gcards/index.php , como puedes ver a la izquierda si pulsas en cualquiera de las secciones aparecen páginas del estilo: http://www.jugones.net/index.php?catSearch=15&limit=9 , lamentablemente estas páginas son muy poco "amigables" para los buscadores por lo que he añadido el siguiente código en el htaccess:


RewriteEngine on

Rewriterule ^postalamigas.php$ index.php?catSearch=15&limit=9


Para cada una de las secciones, creando artificialmente una página mucho más amigable. Para evitar la duplicidad he añadido estas páginas CatSearch al archivo robots.

Lo que me gustaría es poder redireccionar los enlaces que había a dichas webs complicadas creadas por el script a las nuevas, pero no consigo redireccionar las páginas, ya que pienso yo, las dirijo a páginas que no existen en si.

Si hubiera algún código que pudiera añadir al script o al index para que cada categoría no creara una página php?catSearch sino una con el nombre de la categoría sería increible y si no pues encontrar alguna forma de redireccionar los enlaces que había a las páginas nuevas creadas con una url mucho mejor.

Puedes ver todos los enlaces nuevos creados en la parte de abajo de la web.

De nuevo gracias anticipadas.

Saludos
_________________
Blog Gratis sobre Gadgets
Página sobre Frases
Volver arriba
Ver perfil de usuario Enviar mensaje privado
JustMe
Vivo en Xeoweb


Registrado: 27 Sep 2005
Mensajes: 2858
Ubicación: Por ahí....

MensajePublicado: Jue Jul 26, 2007 6:17 pm    Asunto: Responder citando

Uff... debe ser mi día tonto, no entiendo bien que es lo que quieres hacer, en tu web tienes dos estilos de enlaces, con y sin parámetros, imagino que es porque tienes planeado cambiarlas todas a "amigables" pero aun no lo has hecho, ¿me equivoco?

Según lo que te entendí, y para no crear redirecciones infinitas en apache, más te valdría hacerlo en php, como no he entendido aun bien, no sé de seguro si está bien, pero creo que algo como esto te valdrá:
Código:

if (strpos($_SERVER['REQUEST_URI'], '?')!==false){
   #### REQUEST_URI contiene la URL tal y como fue ingresada
   if(!empty($_GET['catSearch'])){
      switch($_GET['catSearch']){
         case 1 :
            $new_url = 'http://mipagina.tld/mipaginaamigable1.php';
         break;
         .
         .
         .
         case 15 :
            $new_url = 'http://mipagina.tld/mipaginaamigable15.php';
         break;
         default:
            ##### NO ENCONTRÓ COINCIDENCIA EN LA LISTA DE POSIBLES
            $new_url = 'http://mipagina.tld/';
      }
      header('HTTP/1.1 301 Moved Permanently');
      header('Location: '.$new_url);
   }
}


Desde luego, tienes que acoplarlo a tus propias necesidades, déjame saber qué pasa con él.... y por supuesto, si eso era lo que querías.
_________________
PHP Data uri fier
Blog Gratis


Ultima edición por JustMe el Jue Jul 26, 2007 8:30 pm, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Prometeo
Busco en Dmoz


Registrado: 06 May 2006
Mensajes: 176

MensajePublicado: Jue Jul 26, 2007 8:27 pm    Asunto: Responder citando

De nuevo Gracias JustMe,

Si la idea es que antes tenía las páginas tal y como venían por defecto en el script (menú de la izquierda), pero este script no tiene opción (como por ejemplo el wordpress) de poner urls más sencillas, por lo que como no podía crear yo esas webs (al generarse automaticamente) las he creado con el código que te comenté más arriba a mi gusto en el htaccess.

Rew
Código:
riterule ^postalamigas.php$ index.php?catSearch=15&limit=9


El problema es que no puedo realizar una redireccion 301 de las que da el script a las nuevas creadas por mi, de ahí mi problema.

El código que me comentas, ¿habría que añadirlo en el index? Al principio supongo con los otros ifs que tiene y entiendo que sería uno diferente para cada categoría.

Gracias de nuevo por tu tiempo y Saludos
_________________
Blog Gratis sobre Gadgets
Página sobre Frases
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Publicar nuevo tema   Responder al tema    Foros de discusión -> Lenguajes de Programación Web Todas las horas son GMT
Respuesta Rápida y Acciones
 

 

Página 1 de 1


Cambiar a:  
Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro

 


Logo diseñado por iLevante
Powered by phpBB © 2001, 2009 phpBB Group