Я использую 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
Есть идеи, версия демона это или что-то еще?
(*UTF8)
не является действительным регулярным выражением, и я не уверен, почему вы его запрашиваете - например, .*
и тому подобное в вашем регулярном выражении будет соответствовать любому символу, в кодировке UTF8 или нет. Вы имеете в виду perl, а не mod_rewrite, который требует явного включения поддержки utf8.
Для mod_rewrite вы пытаетесь обработать конкретную кодировку особым образом, и в этом случае она просто не нужна.
Т.е.,
RewriteRule ^/users/(.*)$ /newusers/$1 [L]
будет соответствовать:
/users/café
и так далее. Однако имейте в виду, что использование таких классов символов, как [a-zA-Z]
НЕ будет соответствовать utf8.