目前我们的 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/;
}
看这个文件了解详情。