Saya memiliki penulisan ulang dalam file conf ngix saya yang berfungsi dengan baik kecuali tampaknya menyertakan blok lokasi sebagai bagian dari variabel $ uri. Saya hanya ingin jalan setelah blok lokasi. Kode konfigurasi saya saat ini adalah:
location /cargo {
try_files $uri $uri/ /cargo/index.php?_REWRITE_COMMAND=$uri&args;
}
Menggunakan contoh url dari http://localhost/cargo/testpage
karya redirect, namun nilai parameter "_REWRITE_COMMAND" yang diterima oleh file php saya adalah "/ cargo / testpage". Saya perlu membuka blok lokasi dan hanya memiliki "testpage" sebagai $ uri
Saya cukup yakin ada sintaks regex untuk membagi $ uri dan menetapkannya ke variabel baru menggunakan $ 1 $ 2 dll, tetapi saya tidak dapat menemukan contoh untuk melakukan hanya tugas variabel menggunakan regex yang bukan bagian dari penulisan ulang pernyataan. Saya sudah mencari dan mencoba selama berjam-jam dan sepertinya saya tidak bisa melewati langkah terakhir ini.
Saya juga tahu saya bisa menghapus ini pada kode aplikasi, tetapi alasan saya ingin mencoba memperbaikinya di nginx conf adalah untuk alasan kompatibilitas karena juga berjalan di Apache. Saya juga harus mengatakan bahwa saya telah menemukan cara yang benar-benar gila untuk melakukannya, tetapi itu melibatkan pernyataan "jika" untuk memeriksa keberadaan file dan dokumentasi secara khusus mengatakan tidak melakukannya dengan cara itu.
Saya menemukan hal lain yang bekerja untuk saya (karena saya menggunakan gunicorn, saya tidak dapat memilih apa yang harus dilewati)
Anda harus bisa lolos
sumber
Bagi mereka yang mungkin kesulitan untuk menambahkannya untuk layanan mikro atau API dengan Node JS, saya menggunakan yang berikut ini untuk menghapus
api
dari url di server saya:sumber