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.