Nginx 重写 URL 中的破折号

Nginx 重写 URL 中的破折号

我有一个 URL:s,其中包含一个短划线字符,如下所示:

https://domain.dom/path/document-–-名称包含单个破折号

我尝试创建一个重写来用单个破折号替换'---'字符串(破折号,短破折号,破折号),如下所示:

rewrite ^(.*)-–-(.*)$  $1-$2;

...实现如下 URL:

https://domain.dom/path/document-name-contains-a-single-en-dash

但这似乎不起作用。我做错了什么?

答案1

短划线(假设为 UTF8)在 URL 中实际上表示为三个字节。您可以使用转义符将任意字节放入正则表达式中\x

例如:

rewrite ^(.*)-\xE2\x80\x93-(.*)$ $1-$2;

相关内容