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

Expresiones regulares mas htaccess

Estas en el tema de Expresiones regulares mas htaccess en el foro de Apache en Foros del Web. Pues bien... llevaba rato sin colocar un tema en el foro y me dedique a ayudar a otras personas con problemas mas simples. Pero ahora ...
  #1 (permalink)  
Antiguo 29/03/2011, 17:52
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Expresiones regulares mas htaccess

Pues bien... llevaba rato sin colocar un tema en el foro y me dedique a ayudar a otras personas con problemas mas simples. Pero ahora soy yo quien pide ayuda :D

tengo lo siguiente:

www.dominio.co/modulo_principal.php

a modulo_principal.php le pueden llegar 1, 2 o 3 parametros por la URL así:

modulo_principal.php?variable1=valor
modulo_principal.php?variable1=valor&variable2=val or
modulo_principal.php?variable1=valor&variable2=val or&variable3=valor


Estoy intentando organizar lo de URL amigable en el htaccess pero créanme que esto se me salio de las manos. No he podido entender lo de expresiones regulares

Lo que voy a mostrarles me da pena pero quiero que vean que lo he intentado:

RewriteBase /
RewriteEngine on

Options +FollowSymLinks
RewriteRule ^modulo_principal\.php?(.*)/(.*)/(.*)/$ modulo_principal.php?modulo=$1&link=$2&event=$3 [L]


Eso es lo que he intentado hacer con lo que he leído pero estoy es probando con de todo para ver si funciona.

Estoy seguro que con un ejemplo que me den el resto de las reglas las podre hacer yo solo.

Muchas gracias por su ayuda
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 29/03/2011, 18:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresiones regulares mas htaccess

lejos de sonar molesto, y evitando que alguien se moleste: las expresiones regulares no son php, y mucho menos la configuración de Apache (.htaccess)

¿referencias de expresiones regulares?

¿ejemplos de mod_rewrite?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/03/2011, 18:16
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Expresiones regulares mas htaccess

Pateketrueke muchas gracias por la información... seguiré esperando a que alguien me ayude a organizar mis url amigables.

Feliz día.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 29/03/2011, 19:12
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Expresiones regulares mas htaccess

Intente con este pero tampoco me funciona

RewriteEngine On
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z0-9]+).htm$ /modulo_principal.php?modulo=$1&link=$2&event=$3 [L,NC]


o

RewriteEngine On
RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([a-zA-Z0-9]+).htm$ modulo_principal.php?modulo=$1&link=$2&event=$3 [L,NC]


Pero no pasa nada de nada se sigue viendo como antes.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 29/03/2011, 20:57
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Expresiones regulares mas htaccess

Bueno, después de mucho buscar y leer logre realizar lo que quería, adicional a esto quiero decir que a veces a pesar de lo mucho que uno lea y lea solo UNAS POCAS PERSONAS SON CAPACES DE HACERSE ENTENDER y dan los VERDADEROS PARAMETROS para utilizar las cosas.

No se en donde lo ley porque pase por muchísimas paginas pero quiero AGRADECERLE a esa persona ya que con una simple NOTA al principio del tutorial me saco de una labor de horas y horas de trabajo.

Las RewriteRule NO MODIFICAN LA DIRECCION QUE APARECE EN LA BARRA DE DIRECCION DE LOS USUARIOS, ESO LO TENEMOS QUE HACER NOSOTROS MISMOS

Entonces después de eso me di cuenta que con colocar la regla no se hacia la URL amigable, uno mismo debe colocar el enlace falso tal cual lo coloco en el HTACCESS y el se encarga de redireccionarlo a la verdadera ruta.

bueno ahora si paso a explicar, y si tengo errores bienvenidas sean las criticas

Esto es lo que coloque en mi HTACCESS

RewriteEngine On
RewriteRule ^principal/(.*)/(.*)/(.*)/$ modulo_principal.php?modulo=$1&link=$2&event=$3 [L,NC]

Lo de RewriteRule es para decirle al apache que abriremos una regla

El ^principal/ es para crear nuestro falso directorio, en realidad le estoy diciendo al apache que empieza (^) con principal

(.*) esto es para decirle que puede ser cualquier cosa, numero, carácter, letra y lo utilizamos para pasarle el valor de las variables

Bueno hasta ahí creo que ya esta la parte falsa, ahora viene la verdadera ruta:

Lo único raro aquí es $1, $2 y $3 que corresponden en orden a (.*)/(.*)/(.*) que son las 3 variables que se le pasan a la verdadera pagina para que ella trabaje.

[L,NC] esto son flags o banderas, la L es que si se cumple la regla entonces la trate como si fuera la ultima para que no siga leyendo mas reglas y NC es para que no distinga mayúsculas o minúsculas

Ahora bien, y aquí el porque llevaba horas perdiendo tiempo con esto.

cuando creo el enlace no lo debo hacer como lo hacia con .php?bla bla bla sino:

www.dominio.co/principal/17/1/2/

y funciona perfecto
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #6 (permalink)  
Antiguo 30/03/2011, 10:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde PHP a Apache

Etiquetas: expresiones, php, regulares, htaccess
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 13:23.