簡體   English   中英

NGINX 上的重定向 URI

[英]Redirect URI on NGINX

我的網站上有一個頁面(僅登錄用戶可以訪問),如下所示:

https://www.example.com/forum/new

但是,有時當用戶單擊或刷新時,他們會得到如下頁面:

https://www.example.com/forum%252fnew

現在 %25 解碼為 % 符號,而 %2f 解碼為“/”,因此 URI 似乎被雙重編碼。

我不確定這種編碼是如何發生的,但我認為一種解決方法是讓 Nginx 重定向回正確的 URL,如下所示:

location ~ /forum%252Fnew {
    return 301 https://www.example.com/forum/new;
}

我試過用 \\ 轉義該位置的 %,但似乎都不起作用。

我錯過了什么?

在被locationrewrite指令處理之前,URI 已經被解碼和規范化,所以%25看起來像一個%

您問題中的示例顯示了正則表達式location語句。 ~操作符用於依賴於大​​小寫的匹配,而~*操作符用於獨立於大小寫的匹配。

要使問題中的示例起作用,您需要將其更改為:

location ~* /forum%2Fnew

或者:

location ~ /forum%2fnew

有關詳細信息,請參閱此文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM