http - nginx的rewrite规则:页面跳转成功但浏览器地址栏未改变
黄舟
黄舟 2017-05-16 17:20:33
0
2
775

配置里面写了这个:

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

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
淡淡烟草味

改成这个试试

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

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

巴扎黑

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!