搜尋

首頁  >  問答  >  主體

http - 如何讓nginx的rewrite規則(redirect)只執行一次?

rewrite ^/(.*).html$ /.html?mode=test redirect;

現在有上面那樣的rewrite規則,可以生效,但會多次redirect。如何修改才能讓它只跳一次?

break也不行,因為break不會修改瀏覽器網址列。

例如:
http://xxx.xx.xx/weather/bug.html會一直跳下去,出現weather/bug.html?mode=test&mode=test&mode= test&mode=test&mode=test&mode=test&mode=test&mode=test&mode……

更新

    location / {
            if($args *~ "mode=formal"){
                rewrite (.*) ? redirect;
                rewrite (.*) ?mode=test redirect;
            }
            else if($args [[不包含mode=test]]){
                rewrite ^/(.*).html$ /.html?mode=test redirect;
            }
            error_page 404 = @nodejs;
    }

我想用上面這種方式來配置,先判斷$args,再進行rewrite,不知道能行不。
還有那個[[不包含mode=test]]該怎麼寫?

某草草某草草2753 天前602

全部回覆(1)我來回復

  • 高洛峰

    高洛峰2017-05-16 17:22:30

    用last試試看

    回覆
    0
  • 取消回覆