web-dev-qa-db-ja.com

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
koby

(*UTF8)は有効な正規表現ではないため、なぜそれを要求しているのかわかりません。正規表現の.*などは、UTF8でエンコードされているかどうかに関係なく、どの文字とも一致します。あなたが参照しているのはPerlです-utf8サポートの明示的な有効化を必要とするmod_rewriteではありません。

Mod_rewriteの場合、特定のエンコーディングを特別な方法で処理しようとしていますが、この場合は必要ありません。

つまり、

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

一致します:

/users/café

等々。ただし、[a-zA-Z]のような文字クラスを使用するとutf8と一致しないことに注意してください。

1
Andrew M.