Saya perlu mengonfigurasi proxy terbalik saya sehingga parameter berikut akan ditambahkan di akhir url: &locale=de-de
Ini hampir berhasil:
rewrite ^(.*)$ $1&locale=de-de break;
Namun, masalahnya adalah saya harus menambahkan '& locale = de-de' hanya jika belum ada dan jika ada '?' di url ...
Bisakah saya mendapatkan bantuan dalam merumuskan regex yang benar untuk melakukan ini?
Pertanyaan lain: Mengapa tanda tanya di url saya tidak ditampilkan jika saya menggunakan ini:
$ uri? $ Args
Atau $ uri $ is_args $ args menerjemahkan url yang tidak disandikan dan tanda tanya ditampilkan sebagai% 3f.
Ide ide?
EDIT: Tampaknya perilaku ini ada saat menggunakan dalam kombinasi dengan proxy_pass. Dalam penulisan ulang sederhana itu berfungsi dengan sangat baik.
Kecocokan untuk
rewrite
tidak menyertakan parameter permintaan, jadi Anda perlu mengujinya di tempat lain.Mencoba:
sumber
rewrite
perlulast
menjadi jika-aman. Diedit.Tidak
rewrite
mengubah parameter permintaan, hanya bagian jalur URI. Dalam pengalaman saya, mengotak-atik penulisan ulang mengarah ke siklus aneh, di mana parameter baru akan ditambahkan ad infinitum. Menulis ulang mungkin bukan cara untuk melakukan ini di Nginx.Sebagai gantinya, Anda harus memodifikasi
$args
variabel menggunakanset
arahan:sumber
$args
harus dimutasi. Sebagai gantinya, lihat solusi @ AlexanderAzarov.