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

1

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

No httpd.conf eu tenho uma regra de reescrita que se parece com isso:

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

A ideia é definir diretórios para o nome de domínio internacionalizado (IDN) em meu servidor.

Eu continuo recebendo

RewriteRule: cannot compile regular expression

Alguma ideia se é a versão demoníaca ou outra coisa?

    
por koby 23.11.2011 / 10:22

1 resposta

1

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

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

Ou seja,

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

combina:

/users/café

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

    
por 24.11.2011 / 23:58