我的服务器块上有这个部分:
location /mycoolurl {
rewrite /mycoolurl(.*) $1 redirect;
}
当有人在浏览器中尝试时 http://coolserver/mycoolurl/它尝试重定向到:
此外,一切都喜欢 http://coolserver/mycoolurl/foo/bar重定向到:
但是,如果我尝试访问 http://coolserver/mycoolurl 它显示了一个默认的nginx错误页面:
302 - Found
预期的行为是302重定向到http://coolserver,而不是显示错误页面,因为它不是错误。
如何获得预期的行为?
答案 0 :(得分:1)
当您尝试访问/ mycoolurl时,您的正则表达式(。*)不会捕获任何内容。因此,Nginx在“Location”标题中返回一个空值以及302响应代码。大多数浏览器认为这种组合不正确并显示错误。
为了防止这种情况,您需要修改重写规则,例如,这样:
<div><img width="100%" src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSj2c33fdt1ugB8VBuE5V37wnmPoxWMknX9JnGycNiH2yr3BpDKVA"></div>