RewriteRule: não é possível compilar expressão regular. Suporte de versão?

RewriteRule: não é possível compilar expressão regular. Suporte de versão?

Estou executando um Ubuntu 10.04 LTS, Apache versão 2.2.14.

No httpd.conf eu tenho uma regra de reescrita parecida com esta:

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

A ideia é definir diretórios para nomes de domínio internacionalizados (IDN) em meu servidor.

Eu continuo recebendo

RewriteRule: cannot compile regular expression

Alguma ideia se é a versão demoníaca ou algo mais?

Responder1

(*UTF8)não é uma expressão regular válida e não sei por que você a está solicitando - coisas como .*e similares em sua expressão regular corresponderão a qualquer caractere, codificado em UTF8 ou não. Você está se referindo ao perl - não ao mod_rewrite, que requer ativação explícita do suporte utf8.

Para mod_rewrite, você está tentando tratar uma codificação específica de uma maneira especial, e isso simplesmente não é necessário neste caso.

Ou seja,

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

irá corresponder:

/users/café

e assim por diante. No entanto, tenha em mente que usar classes de caracteres como [a-zA-Z]NÃO corresponderá a utf8.

informação relacionada