将基域重定向到带有子文件夹的 url (nginx)

将基域重定向到带有子文件夹的 url (nginx)

目前我们的 nginx 运行得很好。我们有特定的重写需求,但我似乎无法让它发挥作用。

我们想要以下内容https://www.domain.com/被重定向到https://www.domain.com/xxx/。但是,只有在斜杠后面没有任何内容(或者如果可能的话,也没有尾部斜杠),重定向才应该起作用。

我尝试了一些类似的事情

rewrite ^ https://www.domain.com/xxx/ permanent; 

但后来我得到了太多的重定向。

答案1

在您的语句中rewrite ^ https://www.domain.com/xxx/ permanent;^是匹配的正则表达式任何URI。您只想匹配非常具体的字符串,因此需要指定开始和结束锚点。

例如:

rewrite ^/$ /xxx/ permanent;

正则表达式^/$与网站的根 URI 匹配。所有 Nginx URI 都有一个前导/,并且根 URI 包含一个/(即使某些浏览器选择将其隐藏在地址栏中)。

如果方案或主机名未更改,则无需指定它们。看这个文件了解详情。


或者,该location = /语句也匹配单个 URI。例如:

location = / {
    return 301 /xxx/;
}

这个文件了解详情。

相关内容