Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menulis ulang permintaan.
Contoh konfigurasi
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
"plugins": [
{
"name": "RewritePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "rewritePlugin"
}
],
"rewritePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.schema.json",
"rewritesFile": "rewrites.json"
}
}
Properti konfigurasi
| Properti | Deskripsi | Bawaan |
|---|---|---|
rewritesFile |
Jalur ke file yang berisi definisi penulisan ulang | rewrites.json |
Opsi baris Perintah
Tidak
Contoh refrite file
Berikut ini adalah contoh aturan penulisan ulang.
Menulis ulang semua permintaan dari HTTP ke HTTPS
Tulis ulang semua permintaan dari HTTP ke HTTPS. Dalam konteks ini, semua berarti semua permintaan yang dikonfigurasi dengan Dev Proxy atau RewritePlugin.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^http://(.*)"
},
"out": {
"url": "https://$1"
}
}
]
}
Mengatur header permintaan
Atur Accept-Language header pada semua permintaan ke https://api.contoso.com. Jika permintaan sudah memiliki header, plugin akan menggantikan nilainya. Jika header hilang, plugin akan menambahkannya. Karena aturan tidak menentukan URL keluar , plugin tidak mengubah URL permintaan.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^https://api\\.contoso\\.com/"
},
"out": {
"headers": [
{
"name": "Accept-Language",
"value": "nl-NL"
}
]
}
}
]
}
Menulis ulang permintaan ke URL dari variabel lingkungan
Tulis ulang permintaan ke https://api.contoso.com URL dasar yang disimpan dalam API_BASE_URL variabel lingkungan, mempertahankan sisa jalur.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^https://api\\.contoso\\.com/(.*)"
},
"out": {
"url": "${env:API_BASE_URL}/$1"
}
}
]
}
Properti file tiruan
| Properti | Deskripsi | Wajib diisi |
|---|---|---|
rewrites |
Array objek penulisan ulang yang menentukan daftar aturan penulisan ulang yang diterapkan RewritePlugin untuk permintaan yang disadapnya | Ya |
Menulis ulang objek
Setiap aturan penulisan ulang memiliki properti berikut:
| Properti | Deskripsi | Wajib diisi |
|---|---|---|
in |
Tulis ulang pola agar sesuai dengan permintaan masuk. | Ya |
out |
Menulis ulang pola untuk menulis ulang permintaan | Ya |
Keterangan
Jika permintaan yang disadap RewritePlugin, tidak cocok dengan semua properti yang ditentukan dalam pola, plugin tidak menerapkan aturan penulisan ulang ke permintaan.
Pola penulisan ulang
Setiap pola penulisan ulang memiliki properti berikut:
| Properti | Deskripsi | Wajib diisi | Nilai default | Sampel nilai |
|---|---|---|---|---|
url |
Dalam pola , ekspresi reguler yang diterapkan plugin ke URL. Dalam pola keluar , URL untuk menulis ulang permintaan. Jika Anda menghilangkannya dalam pola keluar , plugin tidak mengubah URL permintaan. | Ya di dalam, tidak masuk | ^http://(.*) |
|
headers |
Array header permintaan untuk diatur pada permintaan. Hanya didukung dalam pola keluar . | no |
Keterangan
Pola keluar harus menentukan url, headers, atau keduanya.
Jika Anda menggunakan grup pengambilan dalam ekspresi reguler dalam pola, Anda dapat merujuknya dalam pola keluar. Misalnya, jika Anda ingin menulis http://example.com/foo ulang ke https://example.com/foo, Anda bisa menggunakan aturan penulisan ulang berikut:
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^http://(.*)"
},
"out": {
"url": "https://$1"
}
}
]
}
Di URL keluar, Anda dapat mereferensikan variabel lingkungan menggunakan sintaks.${env:VAR_NAME} Dev Proxy menyisipkan nilai variabel lingkungan as-is, sehingga nilai juga dapat merujuk ke grup pengambilan dari dalam pola. Dev Proxy menyelesaikan variabel lingkungan hanya untuk permintaan yang cocok dengan pola dalam dan tidak memperluas variabel lingkungan dalam pola. Jika variabel lingkungan yang direferensikan tidak diatur, Dev Proxy mencatat kesalahan dan melewati aturan penulisan ulang.
Header permintaan
Setiap header permintaan memiliki properti berikut:
| Properti | Deskripsi | Wajib diisi |
|---|---|---|
name |
Nama header permintaan | Ya |
value |
Nilai yang akan diatur untuk header permintaan | Ya |
Keterangan
Plugin cocok dengan nama header secara tidak sensitif huruf besar/kecil. Jika permintaan sudah memiliki header, plugin akan menggantikan nilainya. Jika header hilang, plugin akan menambahkannya.
Plugin mengatur header hanya pada permintaan yang URL-nya cocok dengan pola URL . Plugin mengevaluasi kecocokan sebelum menerapkan penulisan ulang URL dari aturan yang sama, jadi ketika aturan menulis ulang URL dan header, header berlaku untuk permintaan yang sama dengan penulisan ulang URL.
Anda dapat mereferensikan variabel lingkungan dalam nilai header menggunakan ${env:VAR_NAME} sintaks. Dev Proxy menyelesaikannya dengan cara yang sama seperti di URL keluar , dan melewati aturan penulisan ulang jika variabel lingkungan yang direferensikan tidak diatur. Nilai header tidak mendukung grup pengambilan dari dalam pola.