저는 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과 일치하지 않습니다.