NGINX - 在.com之后删除双斜杠

时间:2014-11-21 22:19:48

标签: nginx

我有一些双斜线我无法将我的nginx.conf文件重写为单斜线。我能够让它重写大部分双斜线,例如我可以http://domain.com/feature//feature-name/http://domain.com/feature/feature-name/

if ($request_uri ~ "^[^?]*//") {
    rewrite "(.*)" $scheme://$host$1 permanent;
}

我遇到的问题是,如果我在.com之后立即出现双斜线,它就不会重写为单斜杠。我遇到问题的两个例子是http://domain.com//http://domain.com//features/

我尝试过使用merge_slashes指令和其他各种重写。我只是不知道为什么他们似乎都在.com之后立即工作。谢谢!

1 个答案:

答案 0 :(得分:0)

真正的问题是:您最终是如何使用此类网址

如果您正常使用nginx,则不会出现nginx规范化URI的行为(即它将在​​一个中压缩多个相邻的斜杠,解码URL并解析相对路径)。

正在处理的当前请求的URI的规范化结果存储在$uri变量中。

所以永远不需要以下部分

if ($request_uri ~ "//") {
    return 301 $uri;
}