nginx rewrite: the symbol for ANY UTF8 character

最后都变了- 提交于 2019-12-04 04:27:40

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!