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

dudillas con mod_rewrite

Estas en el tema de dudillas con mod_rewrite en el foro de Apache en Foros del Web. saludos, estoy empezando con mod_rewrite de apache y tengo un par de dudillas que en los manuales que he consultado no resuelven a la hora ...
  #1 (permalink)  
Antiguo 26/05/2008, 13:10
 
Fecha de Ingreso: julio-2007
Mensajes: 239
Antigüedad: 16 años, 10 meses
Puntos: 2
dudillas con mod_rewrite

saludos,

estoy empezando con mod_rewrite de apache y tengo un par de dudillas que en los manuales que he consultado no resuelven

a la hora de realizar instrucciones, apache transforma los enlaces de la web automáticamente o tendría que modificarlos yo a mano


es decir si tengo un menú con enlaces:

index.php?menu=inicio
index.php?menu=vemos_algo
...

y añado una instrucción al .htaccess:
Rewriterule ^(.*)\.html$ index.php?menu=$1

debería de cambiar yo a mano todos los enlaces anteriores?
seguirán funcionando los antigüos?

¿qué es más recomendable apra buscadores, transformarlos en lo-que-sea.html o en /lo-que-sea/?

¿se pueden crear varias instrucciones para casos concretos sin interferir?
es decir :

Rewriterule ^(.*)\.html$ index.php?menu=$1
Rewriterule ^vemos_algo-([^/]+)\.html$ index.php?menu=vemos_algo&texto=$2
Rewriterule ^(.*)-([^/]+)\.html$ index.php?menu=&$1&palomo=$2

¿tienen preferencia las que tienen todas las variables o va por orden de escritura?

gracias
  #2 (permalink)  
Antiguo 26/05/2008, 14:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: dudillas con mod_rewrite

Tema trasladado a Apache.
  #3 (permalink)  
Antiguo 26/05/2008, 20:29
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 17 años, 8 meses
Puntos: 223
Respuesta: dudillas con mod_rewrite

Cita:
Iniciado por Pez_del_Web Ver Mensaje
debería de cambiar yo a mano todos los enlaces anteriores?
seguirán funcionando los antigüos?
Te refieres a la forma en que tu script genera los enlaces? si, debes modificarlo para que genere URLs amigables, pero los enlaces ya existentes deberían funcionar sin problemas.

Cita:
¿qué es más recomendable apra buscadores, transformarlos en lo-que-sea.html o en /lo-que-sea/?
Cualquiera de los dos es recomendable, no hay mayor diferencia con simular un html o un directorio. Lo que si hace la diferencia, es que estas urls contengan las palabras claves adecuadas.


Cita:
¿se pueden crear varias instrucciones para casos concretos sin interferir?
es decir :

Rewriterule ^(.*)\.html$ index.php?menu=$1
Rewriterule ^vemos_algo-([^/]+)\.html$ index.php?menu=vemos_algo&texto=$2
Rewriterule ^(.*)-([^/]+)\.html$ index.php?menu=&$1&palomo=$2

¿tienen preferencia las que tienen todas las variables o va por orden de escritura?
Las reglas se procesan en orden de escritura, yo te recomendaría dejar tus reglas así:

Código:
Rewriterule ^vemos_algo-([^/]+)\.html$ index.php?menu=vemos_algo&texto=$2 [L]
Rewriterule ^(.*)-([^/]+)\.html$ index.php?menu=&$1&palomo=$2  [L]
Rewriterule ^(.*)\.html$ index.php?menu=$1 [L]
Las reglas más específicas deben ir antes que las generales, y agrega [L] al final de cada una para que al haber una coincidencia en una de ellas deje de procesar el resto de reglas.
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #4 (permalink)  
Antiguo 28/05/2008, 09:54
 
Fecha de Ingreso: julio-2007
Mensajes: 239
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: dudillas con mod_rewrite

muchas gracias por la ayuda


tengo un problema cuando lo hago por directorios ya que no me carga las imágenes ni css ni nada, simplemente el texto, es como si la ruta absoluta se moviese de sitio, a que puede deberse?


las urls de los formularios también debería de cambiarlas?


Edito:

Si lo pongo así en los casos en que debería de interpretar la segunda línea interpreta la primera

RewriteRule ^([^-]*)-([^-]*)\.html$ /index.php?ver=$1&envio=$2 [L]
RewriteRule ^([^-]*)-([^-]*)\.html$ /index.php?ver=$1&envio2=$2 [L]
RewriteRule ^([^-]*)\.html$ /index.php?ver=$1 [L]


Así que he tenido que poner :

RewriteRule ^veo1-([^-]*)\.html$ /index.php?ver=veo1&envio=$1 [L]
RewriteRule ^veo2-([^-]*)\.html$ /index.php?ver=veo2&envio2=$1 [L]
RewriteRule ^([^-]*)\.html$ /index.php?ver=$1 [L]

¿es normal que tenga que hacer una norma para cada cosa?

Última edición por Pez_del_Web; 28/05/2008 a las 12:16
  #5 (permalink)  
Antiguo 29/05/2008, 00:20
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 17 años, 8 meses
Puntos: 223
Respuesta: dudillas con mod_rewrite

Cita:
Iniciado por Pez_del_Web Ver Mensaje
tengo un problema cuando lo hago por directorios ya que no me carga las imágenes ni css ni nada, simplemente el texto, es como si la ruta absoluta se moviese de sitio, a que puede deberse?
Como estás usando directorios virtuales, tendrás que asegurarte que las urls al css, imagenes y demás sean absolutas, es la solución más sencilla. Por ejemplo siempre tener las cuestiones del diseño en el directorio /style/ y no importa en que "directorio" este la url de tu pagina, porque siempre llamara a /style/

Cita:
Iniciado por Pez_del_Web Ver Mensaje
las urls de los formularios también debería de cambiarlas?
probablmente no, para no complicar el manejo de los datos/consultas.


Cita:
Si lo pongo así en los casos en que debería de interpretar la segunda línea interpreta la primera

RewriteRule ^([^-]*)-([^-]*)\.html$ /index.php?ver=$1&envio=$2 [L]
RewriteRule ^([^-]*)-([^-]*)\.html$ /index.php?ver=$1&envio2=$2 [L]
RewriteRule ^([^-]*)\.html$ /index.php?ver=$1 [L]


Así que he tenido que poner :

RewriteRule ^veo1-([^-]*)\.html$ /index.php?ver=veo1&envio=$1 [L]
RewriteRule ^veo2-([^-]*)\.html$ /index.php?ver=veo2&envio2=$1 [L]
RewriteRule ^([^-]*)\.html$ /index.php?ver=$1 [L]

¿es normal que tenga que hacer una norma para cada cosa?
El problema es que en el primer caso la condición de la primera y segunda regla son identicas (^([^-]*)-([^-]*)\.html$). Bien puedes usar esa regla y siempre pasar la variable envio=$2 (no veo porque pasar envio2=$2 si con la variable ver ya sabes que tipo de consulta hacer.)
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #6 (permalink)  
Antiguo 29/05/2008, 06:56
 
Fecha de Ingreso: julio-2007
Mensajes: 239
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: dudillas con mod_rewrite

muchas gracias por la ayuda

ya voy teniendo más claro el tema
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 00:48.