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

url amigable revisar expresion

Estas en el tema de url amigable revisar expresion en el foro de Apache en Foros del Web. Hola Necesito que me reviseis una expresion regular a ver porque falla. Mi htacces es: Código: <IfModule mod_rewrite.c> # Activar RewriteEngine RewriteEngine on RewriteCond %{SCRIPT_FILENAME} ...
  #1 (permalink)  
Antiguo 15/05/2013, 04:31
 
Fecha de Ingreso: abril-2005
Mensajes: 75
Antigüedad: 19 años
Puntos: 2
url amigable revisar expresion

Hola

Necesito que me reviseis una expresion regular a ver porque falla.
Mi htacces es:
Código:
<IfModule mod_rewrite.c>
# Activar RewriteEngine
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

#   Entrada:  ID-SERVICIO/ID-SUBSERVICIO
#   Salida: index.php?p=servicios&id_servicio=2&id_sub=6
RewriteRule ^([0-9]+)/([0-9]+)\-([a-zA-Z0-9-]*)$ index.php?p=servicios&id_servicio=$1&id_sub=$2 [L]

#   Entrada:  ID-NOMBRE
#   Salida: index.php?p=servicios&id_servicio=ID
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)$ index.php?p=servicios&id_servicio=$1 [L]


</IfModule>
La segunda expresión me funciona correctamente.
  #2 (permalink)  
Antiguo 15/05/2013, 06:18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 113
Antigüedad: 13 años, 5 meses
Puntos: 10
Respuesta: url amigable revisar expresion

Creo que tienes 2 errores:
El primero es que no has puesto la expresion regular donde recibes el nombre (no el ID) del servicio por tanto la url quedava así: ID/ID-SUBSERVICIO en lugar de así ID-SERVICIO/ID-SUBSERVICIO que es como quieres que sea.

El segundo error es que con el rewrite corregido, recoges 4 variables: 1 -> ID_SERVICIO, 2 -> NOMBRE_SERVICIO, 3 -> ID_SUBSERVICIO, 4 -> NOMBRE_SUBSERVICIO.
Por ello, debes pasarle la primera y la tercera variable y no la primera y la segunda.

Original:
Código:
RewriteRule ^([0-9]+)/([0-9]+)\-([a-zA-Z0-9-]*)$ index.php?p=servicios&id_servicio=$1&id_sub=$2 [L]
Corregido:
Código:
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)$ index.php?p=servicios&id_servicio=$1&id_sub=$3 [L]
No lo he probado, espero que te funcione!

PD: Por favor, la proxima vez, dinos en que falla tu expresión, es decir, no recoge bien los parametros (como en esta ocasión, supongo), devuelve un error 500, un 404, etc...
  #3 (permalink)  
Antiguo 15/05/2013, 06:36
 
Fecha de Ingreso: abril-2005
Mensajes: 75
Antigüedad: 19 años
Puntos: 2
Respuesta: url amigable revisar expresion

Perdón por no explicar el error.
El error es que el enlace va a la pagina index sin hoja de estilo.
He probado tu código y sigue igual.

gracias

Última edición por glome; 15/05/2013 a las 06:56
  #4 (permalink)  
Antiguo 15/05/2013, 08:37
 
Fecha de Ingreso: noviembre-2010
Mensajes: 113
Antigüedad: 13 años, 5 meses
Puntos: 10
Respuesta: url amigable revisar expresion

prueba poniendo la ruta absoluta hacia el CSS y no la relativa.
es decir cambia:
Código:
<link type="text/css" href="css/estilo.css">
por
Código:
<link type="text/css" href="/css/estilo.css">
  #5 (permalink)  
Antiguo 15/05/2013, 08:40
 
Fecha de Ingreso: abril-2005
Mensajes: 75
Antigüedad: 19 años
Puntos: 2
Respuesta: url amigable revisar expresion

Que va, nada
Sigo probando
  #6 (permalink)  
Antiguo 15/05/2013, 09:53
 
Fecha de Ingreso: abril-2005
Mensajes: 75
Antigüedad: 19 años
Puntos: 2
Respuesta: url amigable revisar expresion

He intentado hacer desde el mismo archivo htaccess, pero nada.
Y para no tener que poner la ruta absoluta en todos los enlaces e imagenes, he encontrado lo siguiente:

<base href="http://www.miweb.com" />

Etiquetas: expresion, php, revisar, rewrite, 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 20:27.