Foros del Web » Programando para Internet » PHP »

Excluir cadena con expresiones regulares

Estas en el tema de Excluir cadena con expresiones regulares en el foro de PHP en Foros del Web. Hola, no se si este es el foro correcto, pero como manejáis muy bien el mod_rewrite de apache creo que me podréis ayudar. Estoy usando ...
  #1 (permalink)  
Antiguo 18/07/2005, 08:33
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 20 años, 10 meses
Puntos: 1
Excluir cadena con expresiones regulares

Hola,
no se si este es el foro correcto, pero como manejáis muy bien el mod_rewrite de apache creo que me podréis ayudar.

Estoy usando un ISAPI para que IIS me deje hacer rewrite de la url mediante expresiones regulares.

Quiero convertir directorios en parámetros, de tal forma que
/midirectorio/mipagina.asp --> /mipagina.asp?d=midirectorio

Hasta ahí bien. El problema es cuando piden
/midirectorio

no puedo saber si es un directorio o un fichero, ya que IIS lo traduce en
/midirectorio/

Si digo que le ponga a todo una barra al final pasaría esto
/mipagina.asp --> /mipagina.asp/
lo cual fallaría.

Se que con apache hay un modificador [R] para redireccionar este tipo de problemas, pero con mi ISAPI no puedo por que no tiene ese modificador.

Lo que quiero es construir una expresión que excluya ".asp". Algo así como
RewriteRule ^/(.*^asp)$ /$1/
Es decir, cualquier cosa que no contenga ".asp" debería añadirle una barra "/" al final, para que redirija al directorio.

Gracias de antemano por vuestra ayuda.
  #2 (permalink)  
Antiguo 22/07/2005, 10:14
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
En las perl Compatible RE puese usar
Código:
^/(.*(?!asp))$
(?!texto) es lo que se usa para "negar". Lo que no se es si Microsoft implemente algo ajeno a sus patentes, como seria las ER de PERL jajaja.

Y otera opcion mas generica
Código:
^/(.*[^a][^s][^p])$
es decir, negando una clase tras otra.

Saludos
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:32.