RewriteRule: no se puede compilar una expresión regular. ¿Soporte de versión?

RewriteRule: no se puede compilar una expresión regular. ¿Soporte de versión?

Estoy ejecutando Ubuntu 10.04 LTS, versión Apache 2.2.14.

En httpd.conf tengo una regla de reescritura que se parece a esta:

RewriteRule (*UTF8)^/users/([^/])([^/]+)/(.*)$ /users/$1/$2/$1$2/$3 [L]    

La idea es configurar directorios para nombres de dominio internacionalizados (IDN) en mi servidor.

sigo recibiendo

RewriteRule: cannot compile regular expression

¿Alguna idea de si es la versión demoníaca o algo más?

Respuesta1

(*UTF8)no es una expresión regular válida y no estoy seguro de por qué la solicita; elementos similares .*en su expresión regular coincidirán con cualquier carácter, codificado en UTF8 o no. A lo que te refieres es a perl, no a mod_rewrite, que requiere la habilitación explícita de la compatibilidad con utf8.

Para mod_rewrite, estás intentando tratar una codificación particular de una manera especial, y simplemente no es necesaria en este caso.

Es decir,

RewriteRule ^/users/(.*)$ /newusers/$1 [L]

coincidirá:

/users/café

etcétera. Sin embargo, tenga en cuenta que el uso de clases de caracteres como [a-zA-Z]NO coincidirá con utf8.

información relacionada