java apache mod-rewrite url-rewriting tuckey-urlrewrite-filter

java - ¿Cómo puedo convertir esta regla de Reescritura de Apache en una Regla de Tuckey UrlRewriteFilter?



mod-rewrite url-rewriting (2)

Esto es lo que finalmente decidí:

<rule match-type="regex"> <name>Force URL filenames to lower case</name> <condition type="request-uri" casesensitive="false" operator="notequal">^.*/a4j.*$</condition> <condition type="request-uri" casesensitive="true">^.*/.*[A-Z].*.html$</condition> <from>^(.*)/(.*).html$</from> <to type="permanent-redirect" last="true">$1/${lower:$2}.html</to> </rule>

La primera condición es evitar que la regla se ejecute en solicitudes A4JA AJAX.

Tengo la siguiente regla de reescritura de Apache

<IfModule rewrite_module> RewriteEngine on RewriteMap tolowercase int:tolower RewriteCond $2 [A-Z] RewriteRule ^(.*)/(.*).html$ $1/${tolowercase:$2}.html [R=301,L] </IfModule>

eso cambia esto:

http://localhost.localdomain.com/FooBarBaz.html

a esto:

http://localhost.localdomain.com/foobarbaz.html

Me gustaría transferirlo a este filtro de reescritura de URL de tuckey.org.

¿Cuál es una regla equivalente que podría usar para hacer que la URL sea minúscula? Estoy particularmente interesado en cómo formar el elemento de condición.

Aquí está mi primer corte en la regla, pero no funciona, incluso sin la condición:

<rule> <name>Force URL filenames to lower case</name> <from>^(.*)/(.*).html$</from> <to type="permanent-redirect" last="true">$1/${lower:$2}.html</to> </rule>


Sean,

No necesita una condición para hacer esto (excepto el ignorar en las llamadas AJAX). Más importante aún, el elemento de condición no tiene un atributo sensible a mayúsculas y minúsculas , solo lo hace el elemento from. Una vez que me di cuenta de esto, pude escribir la regla como:

<rule match-type="regex"> <note>Force URL to lower case</note> <from casesensitive="true">^.*[A-Z].*$</from> <to type="permanent-redirect" last="true">${lower:$0}</to> </rule>

NOTA: Esto funciona para toda la solicitud de ruta (aunque no para la cadena de consulta).

Me tropecé con tu publicación porque la regla de reescritura del filtro de URL que me dieron se parecía mucho a la tuya y no funcionaba. A través de una tonelada de prueba y error, finalmente descubrí que el problema no estaba con la expresión regular en absoluto. Era que estaba haciendo juego pero no era sensible a mayúsculas, por lo que recibía redirecciones infinitas.