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

Problema con URL amigable

Estas en el tema de Problema con URL amigable en el foro de Apache en Foros del Web. Buenas. Estoy teniendo el siguiente problema Resulta que puse esto en mi .htaccess RewriteEngine on RewriteRule ^producto/([A-Za-z0-9\-]*) producto.php?producto=$1 [L] pero ahora al entrar en el ...
  #1 (permalink)  
Antiguo 23/10/2012, 11:44
Avatar de eMaa  
Fecha de Ingreso: octubre-2008
Mensajes: 223
Antigüedad: 15 años, 6 meses
Puntos: 1
Problema con URL amigable

Buenas. Estoy teniendo el siguiente problema

Resulta que puse esto en mi .htaccess

RewriteEngine on


RewriteRule ^producto/([A-Za-z0-9\-]*) producto.php?producto=$1 [L]


pero ahora al entrar en el directorio : www.miweb.com/undirectorio/producto/22


Apunta al producto correcto pero todos los enlaces de mi web(imagenes , hoja de estilos ect...) apuntan a : /producto/css/imagenes/boton-recetario.png , es decir me a incluido el /producto en todas las direcciones.
  #2 (permalink)  
Antiguo 23/10/2012, 11:55
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con URL amigable

Pregunto
Productos es siempre un número?
La carpeta productos es real?

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 23/10/2012, 11:59
Avatar de eMaa  
Fecha de Ingreso: octubre-2008
Mensajes: 223
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problema con URL amigable

nop no existe carpeta producto y siempre es un numero, despues va a ser el nombre del producto pero por ahora estoy haciendo pruebas y me pasa eso
  #4 (permalink)  
Antiguo 23/10/2012, 12:15
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con URL amigable

Cita:
Iniciado por eMaa Ver Mensaje
nop no existe carpeta producto y siempre es un numero, despues va a ser el nombre del producto pero por ahora estoy haciendo pruebas y me pasa eso
Probá con esto

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3.  
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteRule ^producto/(.*)$ producto.php?producto=$1 [L]
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 23/10/2012, 12:36
Avatar de eMaa  
Fecha de Ingreso: octubre-2008
Mensajes: 223
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problema con URL amigable

Sigue pasando lo mismo con ese emprear :(
  #6 (permalink)  
Antiguo 23/10/2012, 13:30
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con URL amigable

Mirá este ejemplo

http://mr6.emprear.com/test.html

vas a verque el 3 link no funciona ya que en el .htaccess tenemos ^producto
el sigo ^ significa que la regla debe de comenzar por producto, entonces al poner otracosa la regla no se cumple
Si quitamos el ^ se cumple en los tres ya que producto puede estar en cualquier parte, desde ya que la regla debe de terminar por /algo el ago puede ser un numero u otra cosa

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 23/10/2012, 14:35
Avatar de eMaa  
Fecha de Ingreso: octubre-2008
Mensajes: 223
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problema con URL amigable

emprear muchisimas gracias por tu tiempo. El ejemplo que me mostras funciona exactamente como yo quiero y es asi como lo tengo, solo que mi problema es que la pagina que me aparece luego de haber pusto la url amigable aparece sin las imagenes ni hoja de estilos porque queda mal linkeada, ejemplo: las imagenes me quedan asi: http://miweb.com.ar/cotillon2/produc...es/locales.png y la direccion real de la imagen es sin la palabra producto, osea http://miweb.com.ar/cotillon2/css/imagenes/locales.png . que será?



EDIT: lo solucione usando un - en lugar de una / atrás de productos , lo deje asi:
RewriteRule ^producto-([A-Za-z0-9\-]*) producto.php?producto=$1 [L]

Pero me quedo la duda de que pasa si quiero usar la / en lugar del - y que no me de este error
  #8 (permalink)  
Antiguo 23/10/2012, 19:00
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con URL amigable

Hecho con mi ejemplo no tendría por que pasarte, si vas de vuelta a la url que te pasé. vas a ver que le agregué un archivo de estilos y una imagen
Por otro lado crear una clase [A-Za-z0-9] no tiene mayor sentido si me decís que los productos podran llevar letras o numeros, se supone que después tu php va a filtrar de alguna forma los valores que no existan llegado el caso d que alguien te pase urls manualmente.
mi estructura es
/.htaccess
/estilo.css
/producto.php
/test.html
/img//no_dogs_allowed.png

Sin ver la estructura completa no se me ocurre que te pueda estar fallando
probá de a eso que tenes
RewriteRule ^producto-([A-Za-z0-9\-]*)
ponerlo como
RewriteRule ^producto-([A-Za-z0-9\-])$

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 04/04/2013, 00:37
Avatar de ArmasXxX  
Fecha de Ingreso: marzo-2011
Ubicación: San Pedro Sula
Mensajes: 27
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Problema con URL amigable

Hola eMaa

Yo encontre una solución para ese problema pero no se si es la correcta pero ami me funciono.

Primero te mostrare como se visualiza el error.

Código PHP:
Ver original
  1.  
  2. //---------- variables ---------------//
  3. $url_style = "www.tuweb.com/styles/"; // la direccion web donde estan los archivos.css
  4. $url_images = "www.tuweb.com/images/"; // la adireccion web donde estan las imagenes.
  5. ?>

// --------------------- Manera correcta de mostrar skyle.css -------------------------//
Código HTML:
Ver original
  1. <link href="<?echo$url_style;?>style.css" rel="stylesheet" type="text/css" />

// --------------------- Manera incorrecta de usar style.css --------------------------//
Código HTML:
Ver original
  1. <link href="style.css" rel="stylesheet" type="text/css" />

// ------------------------ Manera correcta de mostrar imagen -------------------------//
Código HTML:
Ver original
  1. <img src="<?echo$url_images;?>ejemplo.png">

// --------- Manera incorrecta de mostrar imagenes con url amigables ------------ //
Código HTML:
Ver original
  1. <img src="images/ejemplo.png">

Explicación:
Para poner como url estable para mostrar imagenes y styles o cualquier otra cosa mi idea fue crear una variable php que guarde la url de mi web y la use para mostrar archivos o cualquier cosa dentro de mi host como los ejemplo arriba.

Espero haber sido de ayuda y si no explique bien hazlo saber para dedicar tiempo y explicarlo mejor.

Última edición por ArmasXxX; 04/04/2013 a las 00:47 Razón: Arreglando ortográfica

Etiquetas: htaccess, php, rewriterule, url, amigables
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 05:35.