nginx rewrite: the symbol for ANY UTF8 character

2019-02-25 06:16发布

问题:

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.