nginx的rewrite规则:页面跳转成功但浏览器地址栏未改变

发布于 2022-09-01 22:46:56 字数 242 浏览 20 评论 0

配置里面写了这个:

location / {
        rewrite /bug.html /weather/index.html?mode=test last;
        error_page 404 = @nodejs;
}

浏览器打开/bug.html的时候,的确出现的是/weather/index.html页面,但是浏览器地址栏没变。
这是怎么回事?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏日浅笑〃 2022-09-08 22:46:56

改成这个试试

location / {
        rewrite /bug.html /weather/index.html?mode=test redirect;
        error_page 404 = @nodejs;
}

rewrite有很多种方法,你写的那种的意思实际上是用户访问老地址时,服务器到新地址去抓取内容然后展现,看清楚了吗,你可以理解为服务器内部做了个跳转,而外部地址不会改变。如果你想让浏览器直接去访问新地址,请用redirect

万水千山粽是情ミ 2022-09-08 22:46:56

单rewrite是服务器重定向: nginx去抓另一个url, 返回给当前请求

你要的那种是客户端重定向: nginx返回301/302给当前请求, 让浏览器自己去请求新的url

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文