nginx解析帶中文的url重定向之後404問題

2022-06-19 11:09:14 字數 1018 閱讀 8152

首先,有這樣乙個需求:乙個系統的儲存是放在upyun上的,現在有個客戶需要本地化部署,所以需要將進行本地儲存。為了相容,儲存的路徑格式保持和在upyun上的儲存路徑一致。在upyun上的儲存路徑是這樣的(客戶id/日期/longtime_名)

可以通過127.0.0.1/img/accountid/1462419931818_qq.png訪問。

然後,upyun提供了一項縮圖的功能,就是在url位址後面加"!w50h50"(width:50px,height:50px)。這是再通過127.0.0.1/img/accountid/1462419931818_qq.png!w50h50就訪問不了了。所以,為了使以前帶縮圖表示的url位址也能訪問,需要對"!"後面的位址進行過濾。在nginx中進行這樣的配置

if ($request_uri  ~* "^(.*)!(.*)$") 

這樣配置之後,127.0.0.1/img/accountid/1462419931818_qq.png!w50h50就可以訪問了。但是如果位址中含有中文,比如127.0.0.1/img/accountid/1462419931818_中文.png!w50h50還是會404.檢視error.log,發現nginx對url位址進行了兩次編碼,即第一次訪問時位址是127.0.0.1/img/accountid/1462419931818_%e4%b8%ad%e6%96%87.png!w50h50,過濾之後重新訪問server,nginx又對url進行了encode,位址變為127.0.0.1/img/accountid/1462419931818_%25e4%25b8%25ad%25e6%2596%2587.png。

此時,應該使用**設定,**不會對url進行encode,配置如下

location /img 

alias d:/;

}

URL引數帶中文的處理

在web開發過程中經常要傳輸帶中文引數的url,而這些中文又解析成 d5 6e 的字串。後台得到這些引數需要解析成中文的形式。先提供tomcat自動解析的方案。tomcat的server.xml檔案 修改後的檔案 可以看出只需要新增兩行配置就可以解決解析的問題,後台收到引數後還是中文,不會出現亂碼。...

帶中文的url的亂碼問題

渣渣糾結了一下午的問題,男朋友看了兩眼截圖就給我解決了,哭死。記錄一下。兩個jsp頁面的跳轉,需要傳中文引數,但是出現了亂碼。在拼接url時,應該首先將中文字串使用encodeuri編碼一下,即encodeuri filename 不能將整個url編碼,因為 也會被編碼。我的目的是使用如下 進行pd...

url帶中文引數顯示亂碼的問題

最近要上個專案,其實很簡單的東西,就是拼接乙個url,不過url中的引數需要urlencode編碼的,其實對我來說,這個問題很好解決,c 用httputility.urlencode來進行編碼,asp用server.urlencode來進行編碼。問題解決了嗎?問題剛剛開始 因為這個公用轉向檔案,是針...