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

Explorer no hace caso de htaccess

Estas en el tema de Explorer no hace caso de htaccess en el foro de Apache en Foros del Web. Hola, tengo en un sitio un htaccess para las url amigables. Este es el contenido resumido: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original RewriteEngine on RewriteBase ...
  #1 (permalink)  
Antiguo 18/06/2012, 03:23
 
Fecha de Ingreso: diciembre-2011
Ubicación: Castellón
Mensajes: 39
Antigüedad: 12 años, 4 meses
Puntos: 2
Explorer no hace caso de htaccess

Hola,

tengo en un sitio un htaccess para las url amigables. Este es el contenido resumido:

Código HTML:
Ver original
  1. RewriteEngine on
  2. RewriteBase /shop
  3.  
  4. #ESPAÑOL
  5. RewriteRule ^categoria/(.*)/?$                  index.php?categoria=$1 [L]
  6. RewriteRule ^camiseta/([0-9]+)-(.*)/?$          detalle.php?id=$1 [L]


De esta forma, la url dominio.com/shop/detalle.php?id=14 se verá como dominio.com/shop/camiseta/14-descripcion.

Pero esto no sucede en explorer, ya que al cargar el index los enlaces van bien, pero al entrar en uno, a los subproductos les pone:

dominio.com/shop/camiseta/camiseta/14-descripcion

lo cual no funciona.

No entiendo por qué añade esa segunda vez lo de "camiseta/" si en el resto de navegadores funciona bien.

¿Hay alguna condición del htaccess para que funcione bien con el explorer?

gracias!
  #2 (permalink)  
Antiguo 19/06/2012, 21:49
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: Explorer no hace caso de htaccess

No conozco motivo por el cual IE trabaje distinto al resto. habría que verlo funcionando. De todas maneras tu esquema no creo que sea el ideal.

Primero habría que aclarar un punto.
La carpeta "shop" existe? o es un prefijo que querés sumar a la url?
El uso de RewriteBase, no se justifica a menos que "shop" sea un alias de apache, o que sea una carpeta por fuera de tu documentRoot (un caso muy común es el de los subdominios que no comparten la raíz de tu sitio principal)
Aqui lo importante es que tus php reciban correctamente los parámetros.

Voy a suponer que tu carpeta shop existe y que index.php y detalles.php estan en la misma

Entonces, tu .htaccess quedaría

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteCond %{REQUEST_FILENAME} !-f
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteRule ^shop/categoria/(.*)$                  /shop/index.php?categoria=$1 [L]
  6. RewriteRule ^shop/camiseta/([0-9]+)-(.*)$          /shop/detalle.php?id=$1 [L]

Y el formato de los posibles links en tu html

Código HTML:
Ver original
  1. <p>
  2. <a href="/shop/camiseta/14-descripcion">/shop/camiseta/14-descripcion</a><br />
  3. <a href="/shop/camiseta/17-talles">/shop/camiseta/17-talles</a><br />
  4. <a href="/shop/categoria/23">/shop/categoria/23</a><br />
  5. <a href="/shop/categoria/ropa">/shop/categoria/ropa</a>
  6. </p>
Si shop no existiese, y solo queréa "adornar" la url, estando index.php y detalle.php en la raiz de tu web, usas en las reglas

Código Apache:
Ver original
  1. RewriteRule ^shop/categoria/(.*)$                  /index.php?categoria=$1 [L]
  2. RewriteRule ^shop/camiseta/([0-9]+)-(.*)$     /detalle.php?id=$1 [L]
Es decir, removés shop de las páginas de destino. El formato de los links, no varía

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: url
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 17:07.