mod_rewrite regla

  • Cae
  • Expert
  • Expert
  • Avatar de Usuario
  • Registrado: Feb 25, 2004
  • Mensajes: 734
  • Status: Offline

Nota Mayo 16th, 2010, 7:35 pm

Im tratando de hacer una regla de reescritura para mapear
Código: [ Select ]
/alpha/beta/gamma/delta.html?var1=a&var2=b

a
Código: [ Select ]
/?id=alpha:beta:gamma:delta&var1=a&var2=b


Id como para ser capaz de manejar un número variable de directorios (alfa, beta, gamma, etc) y un número variable de pares complementarios, así var.

Cualquier ayuda sería apreciada.

Gracias.
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Mayo 16th, 2010, 7:35 pm

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Mayo 16th, 2010, 9:58 pm

¿Es el uso de dos puntos un requisito establecido en la piedra?

Si usted puede trabajar con separadores de directorios en lugar de tener dos puntos, algo como esto podría funcionar para usted.

APACHE Código: [ Select ]
RewriteBase /test/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.html ?id= [QSA,L,NC]
  1. RewriteBase /test/
  2. RewriteCond %{REQUEST_FILENAME} !-f
  3. RewriteRule ^(.+)\.html ?id= [QSA,L,NC]
Strong with this one, the sudo is.
  • Cae
  • Expert
  • Expert
  • Avatar de Usuario
  • Registrado: Feb 25, 2004
  • Mensajes: 734
  • Status: Offline

Nota Mayo 17th, 2010, 6:45 am

Gracias joebert, estoy totalmente de espacio en la bandera QSA, no tienes idea de lo mucho que he estado golpeando mi cabeza contra la pared al respecto.

En cuanto a los dos puntos, se trata de la forma interna que los formatos de los identificadores de su CMS. Voy a ir a través de la fuente y ver la cantidad de un dolor que será la modificación de que para usar parentesis en lugar de los dos puntos, pero si hay alguna manera de hacer básicamente una búsqueda y sustitución en la reescritura var que me ahorraría en su conjunto montón de problemas.

Gracias.
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Mayo 17th, 2010, 3:22 pm

Bueno, dependiendo de su acceso a la configuración, usted puede ser capaz de utilizar RewriteMap con un Re Programa Externo de hacerlo. RewriteMap sólo está disponible en la configuración del servidor o el contexto de la máquina virtual sin embargo, no htaccess. Bueno, técnicamente, el mapa creado está disponible en htaccess a través de RewriteRule, pero la directiva RewriteMap que define el mapa no lo es.

Eso le dará una variabilidad de más o menos ilimitada.

Si usted sabe que nunca será más que decir, directorios X, puede utilizar una colección de declaraciones RewriteRule que comienza con una que coincide con el número máximo de directorios hasta sólo el nombre del archivo.

Algo como

APACHE Código: [ Select ]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+)\.html$ /?id=:: [QSA,L
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]+)/([a-z]+)\.html$ /?id=: [QSA,L]
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]+)\.html$ /?id= [QSA,L]
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+)\.html$ /?id=:: [QSA,L
  3.  
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^([a-z]+)/([a-z]+)\.html$ /?id=: [QSA,L]
  6.  
  7. RewriteCond %{REQUEST_FILENAME} !-f
  8. RewriteRule ^([a-z]+)\.html$ /?id= [QSA,L]
Strong with this one, the sudo is.
  • Cae
  • Expert
  • Expert
  • Avatar de Usuario
  • Registrado: Feb 25, 2004
  • Mensajes: 734
  • Status: Offline

Nota Mayo 20th, 2010, 7:59 am

Gracias Joe, terminé de escribir simplemente un montón de reglas estáticas como usted sugiere, y luego tener que botar el usuario a una página de error si se va por el número específico de reglas.
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Mayo 20th, 2010, 3:40 pm

Im curiosidad por CMS, que está utilizando, o si está utilizando algo de la casa. :D
Strong with this one, the sudo is.
  • Cae
  • Expert
  • Expert
  • Avatar de Usuario
  • Registrado: Feb 25, 2004
  • Mensajes: 734
  • Status: Offline

Nota Mayo 24th, 2010, 6:19 am

Sus este viejo, lo kludgy del hotel que fue desarrollado hace años y la gestión no nos deja quitarse de encima, un poco como su manta de bebé en realidad su...Así que nos quedamos atascados haciendo parches superficiales como éste para poner en práctica una nueva funcionalidad debido a que su más fácil que tratar de descifrar la base mal escrito el código antiguo.

Diversión veces :-)

Publicar Información

  • Total de mensajes en este tema: 7 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 139 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC