2012-04-20 10 views
2

Nginxのように、正規表現で使用するとURLは常にエンコードされません。私は書き換えルールを持っている:Nginxはunencodes urlを書き直します

location /api/ { 
    rewrite /api/(.*)$ $1 break; 
    proxy_pass http://127.0.0.1:8000/$1; 
} 

私はUSLからAPIを削除しますが、パスの残りの部分を維持したいと思います。パスの一部は電子メールアドレス[email protected]です。私は誰か%40somewhere.comを渡していますが、Nginxは@記号を付けて戻しています。

答えて

1

NginxがURLを処理する方法です。 "%"文字を "%25"としてエスケープし、someone%2540somewhere.comを渡すようにWebアプリケーションを変更することで、これを回避できます。

someone%40somewhere.comとしてエスケープされません。

関連する問題