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 인코딩 여부에 관계없이 모든 문자와 일치합니다. 당신이 말하는 것은 utf8 지원을 명시적으로 활성화해야 하는 mod_rewrite가 아닌 perl입니다.

mod_rewrite의 경우 특정 인코딩을 특별한 방식으로 처리하려고 하는데 이 경우에는 필요하지 않습니다.

즉,

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

다음과 일치합니다:

/users/café

등등. 그러나 다음과 같은 문자 클래스를 사용하면 [a-zA-Z]utf8과 일치하지 않습니다.

관련 정보