为什么这个 nginx 重写规则添加尾部斜杠?

为什么这个 nginx 重写规则添加尾部斜杠?

我在位置 / 上有以下重写规则,并且它强制使用尾部斜杠!

location / {
        rewrite ^(\/.*) https://example.com/ar$1 permanent;
}

每次我 curl mydomain.com 时,都会收到以下响应:

HTTP/1.1 301 Moved Permanently
Content-Type: text/html
Connection: keep-alive
Location: https://example.com/ar/

我不希望重定向 URL 末尾有斜杠!

答案1

请查看位置块。您正在匹配 a /,然后在块内部,您也匹配 a /。如果您需要消除/,则需要在某处忽略它。可能,您正在寻找以下解决方案...

location / { rewrite ^/?(.*) https://example.com/ar$1 permanent; }.

相关内容