问题
I want to know what symbol I can use to refer to any character within the utf8 encoding table for nginx rewriting. I have tried:
rewrite ^/.$ /new-location.html break;
but it seems the "." can only stand for ascii characters, when I tried http://example.com/汉 (a Chinese character), it did not work.
This also does not work:
rewrite ^/([\x00-\xff])$ /new-location.html break;
回答1:
From the documentation :
However, UTF-8 and Unicode support has to be explicitly enabled; it is not the default. The Unicode tables corre- spond to Unicode release 6.0.0.
So you have to enable utf-8 to work :
"(*UTF8)^yourregex$"
回答2:
The instruction above tells you to use...
"(*UTF8)^yourregex$"
but your error message reveals you're using something different...
"^(*UTF8)/(.)$"
I'm no expert, but it looks like you've been advised to prefix your regex with (*UTF8) but instead you're inserting it after the opening character of your regex.
来源:https://stackoverflow.com/questions/7950230/nginx-rewrite-the-symbol-for-any-utf8-character