Heim  >  Fragen und Antworten  >  Hauptteil

http – Nginx-Rewrite-Regeln: Die Seite springt erfolgreich, aber die Adressleiste des Browsers ändert sich nicht

Das steht in der Konfiguration:

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

Wenn der Browser geöffnet wird/bug.html, wird die Seite /weather/index.html angezeigt, aber die Adressleiste des Browsers ändert sich nicht.
Was ist los?

黄舟黄舟2713 Tage vor777

Antworte allen(2)Ich werde antworten

  • 淡淡烟草味

    淡淡烟草味2017-05-16 17:22:33

    改成这个试试

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

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

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-05-16 17:22:33

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

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

    Antwort
    0
  • StornierenAntwort