2017-08-03 2 views
1

Wie kann ich den mehrfachen Schrägstrich von der URL http://myserver.com//data/app?foo1=bar1&foo2=bar2 über Rewrite-Regel in Nginx entfernen?Nginx rewrite params Ausgabe

Ich versuche mit Regex Regex aber nicht erfolgreich mit vollständigen Abfrage-String, d. H. Mit Foo1 und Foo2 Params in Umleitung.

+0

Wo ist die '' // kommen aus? Die 'rewrite'-Direktive arbeitet mit einem normalisierten URI und sieht weder das eingebettete' // 'oder das'? 'Oder die Abfragezeichenfolge. –

+0

einer unserer Kunden sendet eine solche Anfrage. Wir können die Fehlerbehebung auf der Client-Seite aus einigen seltsamen Gründen nicht vornehmen. Also versuchen wir, es auf der Seite nginx zu beheben, damit die Anfrage beginnen sollte. JFYI, wir haben merge_slashes deaktiviert und wir normalisieren manuell die url durch neu schreiben von url, da nginx die url irgendwie nicht normalisiert (mit standard merge_slashes on) – Reefaq

+0

Der Wert '$ uri' sollte normalisiert werden, aber der Wert' $ request_uri 'ist nicht. Ich habe Probleme gesehen, wenn Leute '$ request_uri' (z.B. in' proxy_pass') verwenden, was die Normalisierung verhindern würde. –

Antwort

1

Sie können unter Regel ausprobieren:

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

Danke Sagar! Das funktioniert für mich. – Reefaq