2017-08-03 17 views
1

URL http://myserver.com//data/app?foo1=bar1&foo2=bar2から複数のスラッシュをnginxの書き換えルールで削除するにはどうすればよいですか?Nginxがパラメータを書き換えます

私はregexを書き換えようとしていますが、完全なクエリ文字列、つまりfoo1とfoo2のparamsをリダイレクトで使用すると失敗します。

+0

? 'rewrite'ディレクティブは正規化されたURIに対して動作し、埋め込まれた' // 'や'? 'やクエリ文字列は見えません。 –

+0

私たちのクライアントの1人がそのような要求を送信しています。私たちはいくつかの奇妙な理由のためにクライアント側で修正することはできません。私たちはnginx側でそれを修正しようとしています。 JFYIでは、merge_slashesをoffに設定しています.nginxが何らかの形でURLを正規化していないため、手動でurlを書き直しています。 – Reefaq

+0

値 '$ uri'は正規化する必要がありますが、' $ request_uri 'ではない。人々が '$ request_uri'(例えば' proxy_pass'で)を使って正規化を無効にするときに問題が発生しました。 –

答えて

1

あなたはルールの下に試してみることができますどこに `//`から来ている

rewrite ^\/\/data/app/(.*) /data/app/$1 last; 
+0

ありがとうSagar!これは私のために働く。 – Reefaq