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

Redireccion con Modrewriterule

Estas en el tema de Redireccion con Modrewriterule en el foro de Apache en Foros del Web. Hola. He actualizado mi foro a otra version de phpbb. Es un foro que lleva mucho tiempo con lo cual google tiene indexadas muchas paginas. ...

  #1 (permalink)  
Antiguo 16/06/2009, 03:35
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Redireccion con Modrewriterule

Hola.

He actualizado mi foro a otra version de phpbb. Es un foro que lleva mucho tiempo con lo cual google tiene indexadas muchas paginas. Ahora tengo el foro viejo en modo solo lectura, por esto mismo.

Queria saber como poder hacer redirecciones con modrewriterule. Aqui va un ejemplo de un post del foro viejo, y otro del nuevo:

Foro viejo: http://www.pesoccerworld.com/modules...ewtopic&t=5973

Foro nuevo: http://www.pesoccerworld.com/foro/vi...hp?f=17&t=5973

Intente con esto: RewriteRule modules.php?name=Forums&file=viewtopic&t=(.*) foro/viewtopic.php?f=17&t=$1
Pero no funciono, no ocurre nada.

Alguna idea de si se podra hacer?

Gracias
  #2 (permalink)  
Antiguo 16/06/2009, 07:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Redireccion con Modrebriterule

No funciona debido a que tienes algunos caracteres especiales en la URL. Prueba así:
Código Apache:
Ver original
  1. RewriteRule ^modules.php\?name=Formus&file=viewtopic&t=([0-9]+)$ foro/viewtopic.php?f=17&t=$1
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 16/06/2009, 08:40
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrebriterule

Hola, gracias por responder.

Pues no ha funcionado, sigue redireccionando a la direccion vieja.

Exactamente esto es lo que tengo en el .htaccess:

Código:
RewriteEngine on

RewriteRule ^modules.php\?name=Formus&file=viewtopic&t=([0-9]+)$ foro/viewtopic.php?f=17&t=$1
Alguna idea de que puede pasar?

Gracias
  #4 (permalink)  
Antiguo 16/06/2009, 09:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Redireccion con Modrebriterule

Creo que lo más fácil sería hacer la redirección desde el propio modules.php usando PHP, ya que desde Apache no conozco la forma de capturar el QUERY_STRING y redireccionarlo a otro archivo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 16/06/2009, 09:53
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Respuesta: Redireccion con Modrebriterule

Tema trasladado desde Web general
__________________
Javascript Códigos - Bambú difunde
  #6 (permalink)  
Antiguo 16/06/2009, 10:05
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrebriterule

Antes nada, algun mod puede editar el titulo y cambiar la b por la w? que lo puse asi sin querer.

Cita:
Iniciado por David el Grande Ver Mensaje
Creo que lo más fácil sería hacer la redirección desde el propio modules.php usando PHP, ya que desde Apache no conozco la forma de capturar el QUERY_STRING y redireccionarlo a otro archivo.
mmmmm y eso como seria? No es que controle mucho de php, bueno apenas nada.
  #7 (permalink)  
Antiguo 16/06/2009, 10:19
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Respuesta: Redireccion con Modrebriterule

Cita:
Iniciado por Copp Ver Mensaje
Antes nada, algun mod puede editar el titulo y cambiar la b por la w? que lo puse asi sin querer.
Listo
__________________
Javascript Códigos - Bambú difunde
  #8 (permalink)  
Antiguo 16/06/2009, 10:27
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

Gracias, que cada vez que lo leia me dolian los ojos :p

Bueno, a ver si lo podemos solucionar porque es un gran inconveniente para mi con todas las paginas indexadas hacia el foro viejo.
  #9 (permalink)  
Antiguo 17/06/2009, 00:24
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Respuesta: Redireccion con Modrebriterule

Cita:
Iniciado por Copp Ver Mensaje
Hola, gracias por responder.

Pues no ha funcionado, sigue redireccionando a la direccion vieja.

Exactamente esto es lo que tengo en el .htaccess:

Código:
RewriteEngine on

RewriteRule ^modules.php\?name=Formus&file=viewtopic&t=([0-9]+)$ foro/viewtopic.php?f=17&t=$1
Alguna idea de que puede pasar?

Gracias
Si es exactamente eso lo que tienes en tu .htaccess fíjate que tienes dada la vuelta a un par de letras. tienes Formus en vez de Forums, será por eso que no encuentra coincidencias
__________________
Javascript Códigos - Bambú difunde
  #10 (permalink)  
Antiguo 17/06/2009, 02:23
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

ups no me di cuenta, copie directamente lo que me puso David el Grande.

Igualmente acabo de probar y me sigue enviando a la direccion vieja.

Una cosilla a ver si va a tener algo que ver.

Foro viejo: http://www.pesoccerworld.com/modules...ewtopic&t=5973

Foro nuevo: http://www.pesoccerworld.com/foro/vi...hp?f=17&t=5973

La unica diferencia que hay es en el foro nuevo donde pone f=17. Ese numero hace referencia. Al subforo. En este caso el 17 es el de "normas de la web". Pero hay muchos mas y cada uno tiene su numero.

Puede ser por esto que no funcione? habria que meter alguna otra variable o algo asi?

Saludos y gracias.
  #11 (permalink)  
Antiguo 17/06/2009, 03:25
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Respuesta: Redireccion con Modrewriterule

Cita:
Iniciado por Copp Ver Mensaje
La unica diferencia que hay es en el foro nuevo donde pone f=17. Ese numero hace referencia. Al subforo. En este caso el 17 es el de "normas de la web". Pero hay muchos mas y cada uno tiene su numero.

Puede ser por esto que no funcione? habria que meter alguna otra variable o algo asi?
No creo; En realidad, por lo que observo, el identificador del foro en la url es ignorado. Fíjate que si eliminas ese parámetro carga igual sin problemas en el nuevo. En cualquier caso si fuera eso como poco te enviaría a un 404. El tema es que no reacciona ¿seguro está activado el modrewrite?

otra cosa ¿tienes más líneas en el .htaccess?
__________________
Javascript Códigos - Bambú difunde
  #12 (permalink)  
Antiguo 17/06/2009, 03:34
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

Es verdad, redirecciona aunque se ponga ese parametro.

Tengo mas lineas si, pero estan comentadas:

Código:
#RewriteEngine On

#RewriteRule modules.php?name=Forums&file=viewtopic&t=([a-zA-Z0-9_-]*) foro/viewtopic.php?f=17&t=$1

#RewriteRule modules.php?name=Forums&file=viewtopic&t=(.*) foro/viewtopic.php?f=17&t=$1


#Options +FollowSymLinks
RewriteEngine on
#RewriteRule modules-name-(.*)-file-(.*)-t-(.*)\.html$ modules.php?name=$1&file=$2&t=$3

RewriteRule ^modules.php\?name=Forums&file=viewtopic&t=([0-9]+)$ foro/viewtopic.php?f=17&t=$1

RewriteRule modules-name-(.*)-file-(.*)-t-(.*)\.html$ modules.php?name=$1&file=$2&t=$3
Si, tiene que funcionar. Para probarlo a traves de esta url http://www.seochat.com/seo-tools/url-rewriting/ meti la direccion de que puse antes del foro viejo, y despues con http://www.pesoccerworld.com/modules...ic-t-5973.html si me carga bien.

Si esto funciona, lo otro tambien deberia funcionar no?
  #13 (permalink)  
Antiguo 17/06/2009, 03:50
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Respuesta: Redireccion con Modrewriterule

Osea, que si en la línea pones algo exacto como

RewriteRule ^modules.php?name=Forums&file=viewtopic&t=5973$ foro/viewtopic.php?t=5973

ahí sí te funciona?

Última edición por tunait; 17/06/2009 a las 04:00 Razón: puse mal el identificador
  #14 (permalink)  
Antiguo 17/06/2009, 03:56
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

No, parece que eso tampoco funciona, no redirecciona el nuevo, se sigue quedando en el viejo.
  #15 (permalink)  
Antiguo 17/06/2009, 03:59
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Respuesta: Redireccion con Modrewriterule

Entonces parece que es que no está trabajando en absoluto.

Prueba a descomentar esta línea y me cuentas

#Options +FollowSymLinks
  #16 (permalink)  
Antiguo 17/06/2009, 04:11
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

Nada, tampoco funciona.

Tengo el server en la empresa ovh. Y en sus guias, viene esta info:

http://guias.ovh.es/HtaccessModRewrite

Dice que por defecto esta habilitado en todos los servidores.

Que puede estar fallando? Donde puedo comprobar que este habilitado?

Gracias
  #17 (permalink)  
Antiguo 17/06/2009, 04:15
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Respuesta: Redireccion con Modrewriterule

prueba a comentar todas las líneas y deja sólo cualquier cadena de caracteres (como ghiwo). Si al cargar cualquier página te devuelve un internal server error es que está activo

Agrego: por cierto, el .htaccess lo tienes en el directorio raíz de la web ¿no?
  #18 (permalink)  
Antiguo 17/06/2009, 04:31
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

Pues si, me da el

Código:
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Apache/2.0.59 (Unix) mod_ssl/2.0.59 OpenSSL/0.9.8g Server at www.pesoccerworld.com Port 80
si si, tengo el .htaccess en el raiz de la web.

Hay que ponerle algun tipo de permisos especiales? Ahora mismo tiene "644" y los dueños del archivo esta igual que en el resto de ficheros de la web.
  #19 (permalink)  
Antiguo 17/06/2009, 04:53
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Respuesta: Redireccion con Modrewriterule

mmmnop, hasta donde yo sé.

Pues parece que sí está furulando el asunto.

Prueba a ver que se nos haya escapado algún tema de mays/mins, pídele que ignore mayúsculas y minúsculas; ponle también que si encaja con el patrón deje de leer el resto de reglas. Osea, agrégale [NC,L] al final de la línea

RewriteRule ^modules.php\?name=Forums&file=viewtopic&t=([0-9]+)$ foro/viewtopic.php?f=17&t=$1 [NC,L]
  #20 (permalink)  
Antiguo 17/06/2009, 04:59
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

Acabo de comprobarlo, copie otra vez la direccion y todo, y no redirecciona, sigue redireccionando la direccion vieja.

No tendra nada que ver que el foro este en el directorio /foro/ no?
  #21 (permalink)  
Antiguo 17/06/2009, 05:10
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Respuesta: Redireccion con Modrewriterule

Cita:
Iniciado por Copp Ver Mensaje
Acabo de comprobarlo, copie otra vez la direccion y todo, y no redirecciona, sigue redireccionando la direccion vieja.
Jo, estas cosas dan rabia. Seguro es alguna tontería que se nos escapa

Cita:
Iniciado por Copp Ver Mensaje
No tendra nada que ver que el foro este en el directorio /foro/ no?
No, porque está llegando al raíz y de ahi debe redirigir la petición a donde se le indique nada más.

A ver si se me ocurre otro patrón que le guste. Ahora he de salir, en un rato te digo algo si nadie más te ha contestado

Agrego: más allá de que lo más probable es que el patrón no le guste y debemos acertar con uno que sí, la pregunta es ¿no sería mejor que le hicieras una redirección de "movido permanentemente" a la nueva?
  #22 (permalink)  
Antiguo 17/06/2009, 05:12
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

El texto esta bien, eso seguro, porque copie y pegue otra vez.

Yo cuando hice pruebas, habia veces que redirigia a la pagina vieja como ahora, y otros que daba el "internal server error". Debe ser lo que tu dices, algun patron que esta mal o que le falta.

Seguire probando a ver. Si se te ocurre algo mas tarde, me lo dices para probar.

Gracias
  #23 (permalink)  
Antiguo 17/06/2009, 05:37
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

He visto que en el directorio del foro /foro/ hay otro .htaccess con esto:

Código:
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>

<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
A ver si va a tener algo que ver.....
  #24 (permalink)  
Antiguo 17/06/2009, 09:43
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Redireccion con Modrewriterule

Lo que pasa es que la QUERY_STRING no se captura:
Cita:
What is matched?

The Pattern will initially be matched against the part of the URL after the hostname and port, and before the query string. If you wish to match against the hostname, port, or query string, use a RewriteCond with the %{HTTP_HOST}, %{SERVER_PORT}, or %{QUERY_STRING} variables respectively.
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Prueba así:
Código Apache:
Ver original
  1. RewriteCond %{QUERY_STRING} name=Forums&file=viewtopic&t=([0-9]+)
  2. RewriteRule ^modules\.php /foro/viewtopic.php?f=17&t=%1 [R=301]
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #25 (permalink)  
Antiguo 17/06/2009, 09:49
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

Parece que nos vamos acercando pero algo falla.

Redirecciona...mas o menos...pero de una forma muy extraña... :

http://www.pesoccerworld.com/modules...ewtopic&t=5973
  #26 (permalink)  
Antiguo 17/06/2009, 10:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Redireccion con Modrewriterule

¿Seguro que le agregaste el flag [R=301]? Prueba copiando nuevamente la regla que puse en el mensaje anterior.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #27 (permalink)  
Antiguo 17/06/2009, 10:07
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

Es verdad, era eso, no me lo copio bien. Ahora lo copie antes al notepad y de ahi al .htaccess y bien, redirecciona bien: http://www.pesoccerworld.com/modules...ewtopic&t=5973

Bien, primera prueba bien entonces.

Ahora para que cada mensaje del foro viejo, vaya a su correspondiente mensaje del foro nuevo, como seria? es posible?

Muchas gracias!
  #28 (permalink)  
Antiguo 17/06/2009, 10:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Redireccion con Modrewriterule

mmm... Creo que con esa regla todos los temas ya podrían ser redireccionados correctamente .

Por si acaso, sólo quita el número de foro:
Código:
RewriteCond %{QUERY_STRING} name=Forums&file=viewtopic&t=([0-9]+)
RewriteRule ^modules\.php /foro/viewtopic.php?t=%1 [R=301]
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Última edición por David; 17/06/2009 a las 10:27
  #29 (permalink)  
Antiguo 17/06/2009, 10:30
 
Fecha de Ingreso: junio-2002
Mensajes: 516
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Redireccion con Modrewriterule

He probado unas cuantas, y parece que si, que casi todas redirecciona.

Por ejemplo esta redirecciona: http://www.pesoccerworld.com/modules...er=asc&start=0

Pero direcciones de este tipo que van directamente al mensaje, no: http://www.pesoccerworld.com/modules...203922#1203922 . Se puede arreglar para que redireccione?

Luego otra duda. Todas redireccionan http://www.pesoccerworld.com/foro/viewtopic.php?f=17&t=5973 con el f=17 . Ese numero por lo que veo, corresponde a la categoria del foro. Aunque redirecciona bien, se podria hacer que ese numero tambien cambie al que corresponda?

Por ejemplo, en la primera direccion que he puesto arriba del todo http://www.pesoccerworld.com/modules...der=asc&start= redirecciona a http://www.pesoccerworld.com/foro/vi...p?f=17&t=42421 con el f=17 pero este mensaje seria con el f=44 .

Se podria optimizar mas de esta forma?

Ahora mismo parece que funciona bien, pero quiza mas adelante phpbb actualice de tal forma, que si no aparece el numero correspondiente al foro o subforo, no funcione.

Si se puede perfecto, sino pues lo dejo asi.

Graciassss!!
  #30 (permalink)  
Antiguo 17/06/2009, 11:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Redireccion con Modrewriterule

Como mostré en la edición del mensaje anterior, puedes quitar el número de foro y dejar sólo el id del tema. Las demás redirecciones, puedes intentar hacerlos por ti mismo y cualquier cosa nos cuentas; en principio, habría que saber a qué dirección debe apuntar.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 21:24.