配置里面写了这个:
location / {
rewrite /bug.html /weather/index.html?mode=test last;
error_page 404 = @nodejs;
}
浏览器打开/bug.html
的时候,的确出现的是/weather/index.html页面,但是浏览器地址栏没变。
这是怎么回事?
配置里面写了这个:
location / {
rewrite /bug.html /weather/index.html?mode=test last;
error_page 404 = @nodejs;
}
浏览器打开/bug.html
的时候,的确出现的是/weather/index.html页面,但是浏览器地址栏没变。
这是怎么回事?
单rewrite是服务器重定向: nginx去抓另一个url, 返回给当前请求
你要的那种是客户端重定向: nginx返回301/302给当前请求, 让浏览器自己去请求新的url
15 回答8.4k 阅读
6 回答2.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
3 回答2k 阅读
改成这个试试
rewrite有很多种方法,你写的那种的意思实际上是
用户访问老地址时,服务器到新地址去抓取内容然后展现
,看清楚了吗,你可以理解为服务器内部做了个跳转,而外部地址不会改变。如果你想让浏览器直接去访问新地址,请用redirect
。