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

[SOLUCIONADO] Problema al construir rutas amigables

Estas en el tema de Problema al construir rutas amigables en el foro de Apache en Foros del Web. Hola! Intentando construir un sitio demo para presentar un proyecto me estoy topando con problemas a la hora de establecer las rutas amigables y ya ...
  #1 (permalink)  
Antiguo 18/02/2016, 06:12
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 13 años, 8 meses
Puntos: 14
Pregunta Problema al construir rutas amigables

Hola!

Intentando construir un sitio demo para presentar un proyecto me estoy topando con problemas a la hora de establecer las rutas amigables y ya me tienen un poco loco porque la consola siempre me está dando errores de no poder localizar ficheros...

Mi estructura es la siguiente:

· www
- demo
- tienda-demo (carpeta que contendría mi index, css, js, etc...)
- .htaccess

El sitio que estoy intentando mostrar es el que está en tienda-demo con su .htaccess propio.

Aquí os muestro mi .htaccess y que me está dando problemas:
Código Apache:
Ver original
  1. <IfModule mod_rewrite.c>
  2. Options +FollowSymLinks
  3. RewriteCond %{REQUEST_FILENAME} !-f
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteCond %{REQUEST_URI} !=/favicon.ico
  6. RewriteEngine on
  7. RewriteBase /tienda-demo
  8. # Portada - Comprar
  9. RewriteRule ^portada$ index.php [L]
  10. RewriteRule ^realizar-compra$ index.php?seccion=comprar [L]
  11. RewriteRule ^finaliza-compra$ index.php?seccion=comprar [L]
  12. RewriteRule ^tramita-pago$ index.php?seccion=pago [L]
  13. # Ficha Producto
  14. RewriteRule ^detalle/(.+)/?$ index.php?seccion=fichadetalle&producto=$1 [L]
  15. RewriteRule ^portada/categoria/(.+)/?$ index.php?seccion=portada&filtraproducto=$1 [L]
  16. </IfModule>

Si no estoy equivocado, la parte de
Código Apache:
Ver original
  1. RewriteBase /tienda-demo
me indicaría que el .htaccess tomaría como raíz dicha carpeta "tienda-demo" ¿verdad? Si es así las rutas de mis ficheros html/php/js, etc... ¿tendrían que ir tal que así?
Código HTML:
Ver original
  1. <script type="text/javascript" src="/tienda-demo/js/jquery-1.11.2.js"></script>
  2. <script type="text/javascript" src="/tienda-demo/js/jquery-ui-1.11.3.min.js"></script>

Ya he probado a incluirle rutas como "/demo/tienda-demo/js...." o "/js/......" o "js/......" y nada siempre me están fallando, algunas veces me coge bien el fichero css, otras veces me dice que no lo encuentra....estoy ya un poco

Al ver que las rutas también fallaban he ido probando a establecer nuevos valores para el RewriteBase como "/demo/tienda-demo" o "/www/demo/tienda-demo" y tampoco

¿Podríais decirme dónde estoy metiendo la pata?

Gracias!
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #2 (permalink)  
Antiguo 18/02/2016, 12:03
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 2 meses
Puntos: 21
Respuesta: Problema al construir rutas amigables

Para no hacerte líos con htaccess, pon las rutas absolutas de tus css de la misma forma que lo estás haciendo con tus archivos js.
También puedes establecer la condición para que no aplique las reglas si es un archivo existente, así como lo hiciste:
Código :
Ver original
  1. RewriteCond %{REQUEST_FILENAME} !-f
La cuestión es que esa condición solo se aplica para la RewriteRule posterior inmediata, si quieres aplicarlo para más reglas tienes que repetir la condición para cada regla.

RewriteCond 1
RewriteRule 1

RewriteCond 2
RewriteRule 2

En chrome puedes hacer clic derecho, luego en inspeccionar y después en consola puedes ver si hay un error al cargar algún archivo y la ruta que intentó cargar, así puedes tener pistas para no hacer cambios sin saber qué está pasando.

Saludos.
  #3 (permalink)  
Antiguo 19/02/2016, 05:04
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 13 años, 8 meses
Puntos: 14
Respuesta: Problema al construir rutas amigables

Cita:
Iniciado por carlillos Ver Mensaje
Para no hacerte líos con htaccess, pon las rutas absolutas de tus css de la misma forma que lo estás haciendo con tus archivos js.
También puedes establecer la condición para que no aplique las reglas si es un archivo existente, así como lo hiciste:
Código :
Ver original
  1. RewriteCond %{REQUEST_FILENAME} !-f
La cuestión es que esa condición solo se aplica para la RewriteRule posterior inmediata, si quieres aplicarlo para más reglas tienes que repetir la condición para cada regla.

RewriteCond 1
RewriteRule 1

RewriteCond 2
RewriteRule 2

En chrome puedes hacer clic derecho, luego en inspeccionar y después en consola puedes ver si hay un error al cargar algún archivo y la ruta que intentó cargar, así puedes tener pistas para no hacer cambios sin saber qué está pasando.

Saludos.
Gracias por responder

Es que me pasa algo curioso.....he puesto las rutas y me funcionan las importaciones de css y js que hago, pero en cuanto intento navegar a alguna dirección no me funciona.

Por ejemplo: Con la condición
Código Apache:
Ver original
  1. RewriteRule ^portada$ index.php [L]
la dirección que tengo de /demo/tienda/portada me tendría que ir a la portada, sin embargo me lanza un error 404.......... no entiendo como al navegar me está fallando y al importar css o js con rutas como "/demo/tienda/jquery.min.js" si las encuentra y funciona
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #4 (permalink)  
Antiguo 19/02/2016, 11:36
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 2 meses
Puntos: 21
Respuesta: Problema al construir rutas amigables

Yo había entendido que la estructura de tu sitio era así:

misitio.com/tienda-demo/index.php

Ahora dices que es así:

misitio.com/demo/tienda/index.php

¿Cuál es la buena?
  #5 (permalink)  
Antiguo 22/02/2016, 02:48
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 13 años, 8 meses
Puntos: 14
Respuesta: Problema al construir rutas amigables

Cita:
Iniciado por carlillos Ver Mensaje
Yo había entendido que la estructura de tu sitio era así:

misitio.com/tienda-demo/index.php

Ahora dices que es así:

misitio.com/demo/tienda/index.php

¿Cuál es la buena?
Perdón... estaba pensando en otras cosas la ruta sí era la que indicabas antes /tienda-demo/index.php

Al final conseguí sacarlo...resulta que la carpeta no tenía permisos para ejecutar el htaccess y de ahí mi paranoia con las rutas al pasar las variables y demás.... quién me mandaba a mí hacer las rutas amigables! jejejejjee
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"

Etiquetas: amigables, construir, htacces, rutas
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 14:01.