RewriteRule: невозможно скомпилировать регулярное выражение. Поддержка версии?

RewriteRule: невозможно скомпилировать регулярное выражение. Поддержка версии?

Я использую Ubuntu 10.04 LTS, Apache версии 2.2.14.

На httpd.conf у меня есть правило перезаписи, которое выглядит так:

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

Идея состоит в том, чтобы настроить каталоги на интернационализированные доменные имена (IDN) на моем сервере.

Я продолжаю получать

RewriteRule: cannot compile regular expression

Есть идеи, это демоническая версия или что-то ещё?

решение1

(*UTF8)не является допустимым регулярным выражением, и я не уверен, почему вы его запрашиваете — такие вещи, как .*и тому подобное в вашем регулярном выражении, будут соответствовать любому символу, закодированному в UTF8 или нет. То, о чем вы говорите, — это perl, а не mod_rewrite, который требует явного включения поддержки utf8.

В случае mod_rewrite вы пытаетесь обработать конкретную кодировку особым образом, а в данном случае это просто не нужно.

Т.е.,

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

будет соответствовать:

/users/café

и т. д. Однако имейте в виду, что использование таких классов символов, как , [a-zA-Z]НЕ будет соответствовать utf8.

Связанный контент