Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Riscrive le richieste.
Esempio di configurazione
{
"$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"
}
}
Proprietà di configurazione
| Proprietà | Descrizione | Valore predefinito |
|---|---|---|
rewritesFile |
Percorso del file contenente definizioni di riscrittura | rewrites.json |
Opzioni della riga di comando
Nessuno
Esempi di file di riscrittura
Di seguito sono riportati esempi di regole di riscrittura.
Riscrivere tutte le richieste da HTTP a HTTPS
Riscrivere tutte le richieste da HTTP a HTTPS. In questo contesto, tutte le richieste configurate con Dev Proxy o 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"
}
}
]
}
Impostare un'intestazione di richiesta
Impostare l'intestazione Accept-Language su tutte le richieste su https://api.contoso.com. Se la richiesta ha già l'intestazione, il plug-in ne sostituisce il valore. Se l'intestazione non è presente, il plug-in lo aggiunge. Poiché la regola non specifica un URL out , il plug-in non modifica l'URL della richiesta.
{
"$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"
}
]
}
}
]
}
Riscrivere le richieste a un URL da una variabile di ambiente
Riscrivere le richieste all'URL https://api.contoso.com di base archiviato nella API_BASE_URL variabile di ambiente, mantenendo il resto del percorso.
{
"$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"
}
}
]
}
Simula le proprietà del file
| Proprietà | Descrizione | Richiesto |
|---|---|---|
rewrites |
Matrice di oggetti di riscrittura che definisce l'elenco di regole di riscrittura applicabili a RewritePlugin alle richieste intercettate | Sì |
Riscrivere l'oggetto
Ogni regola di riscrittura ha le proprietà seguenti:
| Proprietà | Descrizione | Richiesto |
|---|---|---|
in |
Riscrivere il modello in modo che corrisponda alla richiesta in ingresso. | Sì |
out |
Riscrivere il modello per riscrivere la richiesta | Sì |
Osservazioni:
Se la richiesta intercetta RewritePlugin, non corrisponde a tutte le proprietà definite nel modello in , il plug-in non applica la regola di riscrittura alla richiesta.
Riscrivere il modello
Ogni criterio di riscrittura ha le proprietà seguenti:
| Proprietà | Descrizione | Richiesto | Valore predefinito | Valore di esempio |
|---|---|---|---|---|
url |
Nel modello in espressione regolare applicata al plug-in all'URL. Nel modello out , URL in cui riscrivere la richiesta. Se lo si omette nel modello out , il plug-in non modifica l'URL della richiesta. | Sì in, no in uscita | ^http://(.*) |
|
headers |
Matrice di intestazioni di richiesta da impostare sulla richiesta. Supportato solo nel modello out . | no |
Osservazioni:
Il modello out deve specificare url, headerso entrambi.
Se si usano gruppi di acquisizione nell'espressione regolare nei modelli, è possibile farvi riferimento nel modello out. Ad esempio, se si vuole riscrivere in http://example.com/foo, è possibile usare la regola di riscrittura https://example.com/foo seguente:
{
"$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"
}
}
]
}
Nell'URL out è possibile fare riferimento alle variabili di ambiente usando la ${env:VAR_NAME} sintassi . Dev Proxy inserisce il valore della variabile di ambiente as-is, in modo che il valore possa anche fare riferimento ai gruppi di acquisizione dal modello in . Dev Proxy risolve le variabili di ambiente solo per le richieste che corrispondono al modello in e non espande le variabili di ambiente nel modello in . Se una variabile di ambiente a cui si fa riferimento non è impostata, Dev Proxy registra un errore e ignora la regola di riscrittura.
Intestazione della richiesta
Ogni intestazione della richiesta ha le proprietà seguenti:
| Proprietà | Descrizione | Richiesto |
|---|---|---|
name |
Nome dell'intestazione della richiesta | Sì |
value |
Valore da impostare per l'intestazione della richiesta | Sì |
Osservazioni:
Il plug-in corrisponde ai nomi delle intestazioni senza distinzione tra maiuscole e minuscole. Se la richiesta ha già l'intestazione, il plug-in ne sostituisce il valore. Se l'intestazione non è presente, il plug-in lo aggiunge.
Il plug-in imposta le intestazioni solo sulle richieste il cui URL corrisponde al modello url . Il plug-in valuta la corrispondenza prima di applicare la riscrittura URL della stessa regola, quindi quando una regola riscrive sia l'URL che le intestazioni, le intestazioni si applicano alle stesse richieste della riscrittura dell'URL.
È possibile fare riferimento alle variabili di ambiente nei valori di intestazione usando la ${env:VAR_NAME} sintassi . Dev Proxy li risolve come nell'URL out e ignora la regola di riscrittura se non è impostata una variabile di ambiente a cui si fa riferimento. I valori di intestazione non supportano i gruppi di acquisizione dal modello in .