Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Schreibt Anforderungen neu.
Konfigurationsbeispiel
{
"$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"
}
}
Konfigurationseigenschaften
| Eigenschaft | BESCHREIBUNG | Standard |
|---|---|---|
rewritesFile |
Pfad zur Datei mit Umschreibdefinitionen | rewrites.json |
Befehlszeilenoptionen
Keine
Neuschreiben von Dateibeispielen
Im Folgenden sind Beispiele für Neuschreibregeln aufgeführt.
Alle Anforderungen von HTTP in HTTPS umschreiben
Schreiben Sie alle Anforderungen von HTTP in HTTPS um. In diesem Zusammenhang bedeutet alles alle Anforderungen, die mit Dev Proxy oder rewritePlugin konfiguriert wurden.
{
"$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"
}
}
]
}
Festlegen eines Anforderungsheaders
Legen Sie den Accept-Language Header für alle Anforderungen auf https://api.contoso.com. Wenn die Anforderung bereits über den Header verfügt, ersetzt das Plug-In seinen Wert. Wenn der Header fehlt, fügt es das Plug-In hinzu. Da die Regel keine Ausgabe-URL angibt, ändert das Plug-In die Anforderungs-URL nicht.
{
"$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"
}
]
}
}
]
}
Erneutes Schreiben von Anforderungen an eine URL aus einer Umgebungsvariable
Schreiben Sie Anforderungen an https://api.contoso.com die in der Umgebungsvariable API_BASE_URL gespeicherte Basis-URL neu, wobei der Rest des Pfads erhalten bleibt.
{
"$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"
}
}
]
}
Simuliert Dateieigenschaften
| Eigenschaft | BESCHREIBUNG | Erforderlich |
|---|---|---|
rewrites |
Array von Neuschreibobjekten , die die Liste der Neuschreibregeln definieren, die vom RewritePlugin auf die Anforderungen angewendet werden, die sie abfangen | ja |
Rewrite-Objekt
Jede Neuschreibregel weist die folgenden Eigenschaften auf:
| Eigenschaft | BESCHREIBUNG | Erforderlich |
|---|---|---|
in |
Schreiben Sie das Muster neu, um der eingehenden Anforderung zu entsprechen. | ja |
out |
Neuschreiben des Musters zum Umschreiben der Anforderung | ja |
Hinweise
Wenn die Anforderung, die der RewritePlugin abfangen soll, nicht mit allen eigenschaften übereinstimmt, die im Muster definiert sind, wendet das Plug-In die Rewrite-Regel nicht auf die Anforderung an.
Muster neu schreiben
Jedes Neuschreibmuster weist die folgenden Eigenschaften auf:
| Eigenschaft | BESCHREIBUNG | Erforderlich | Standardwert | Beispielwert |
|---|---|---|---|---|
url |
Im Muster gilt der reguläre Ausdruck, den das Plug-In auf die URL anwendet. Url zum Umschreiben der Anforderung in das Out-Muster . Wenn Sie es im Ausgabemuster weglassen, ändert das Plug-In die Anforderungs-URL nicht. | ja in, nein in out | ^http://(.*) |
|
headers |
Array von Anforderungsheadern , die für die Anforderung festgelegt werden sollen. Wird nur im Out-Muster unterstützt. | nein |
Hinweise
Das Ausgabemuster muss oder headersbeides angebenurl.
Wenn Sie Aufnahmegruppen im regulären Ausdruck in den Mustern verwenden, können Sie im Out-Muster darauf verweisen. Wenn Sie z. B. neu schreiben http://example.com/foohttps://example.com/foomöchten, können Sie die folgende Neuschreibregel verwenden:
{
"$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"
}
}
]
}
In der Ausgabe-URL können Sie mithilfe der ${env:VAR_NAME} Syntax auf Umgebungsvariablen verweisen. Dev Proxy fügt den Wert der Umgebungsvariablen as-isein, sodass der Wert auch auf Die Erfassungsgruppen aus dem Muster verweisen kann. Dev Proxy löst Umgebungsvariablen nur für Anforderungen auf, die dem Muster entsprechen, und erweitert umgebungsvariablen im Muster nicht. Wenn keine Referenzumgebungsvariable festgelegt ist, protokolliert Dev Proxy einen Fehler und überspringt die Neuschreibregel.
Anforderungs-Header
Jeder Anforderungsheader verfügt über die folgenden Eigenschaften:
| Eigenschaft | BESCHREIBUNG | Erforderlich |
|---|---|---|
name |
Name des Anforderungsheaders | ja |
value |
Wert, der für den Anforderungsheader festgelegt werden soll | ja |
Hinweise
Das Plug-In gleicht Kopfzeilennamen ohne Groß-/Kleinschreibung ab. Wenn die Anforderung bereits über den Header verfügt, ersetzt das Plug-In seinen Wert. Wenn der Header fehlt, fügt es das Plug-In hinzu.
Das Plug-In legt Header nur für Anforderungen fest, deren URL mit dem in URL-Muster übereinstimmt. Das Plug-In wertet die Übereinstimmung aus, bevor die URL-Neuschreibung derselben Regel angewendet wird. Wenn eine Regel also sowohl die URL als auch die Kopfzeilen neu schreibt, gelten die Header für die gleichen Anforderungen wie das umschreibende URL.
Sie können mithilfe der ${env:VAR_NAME} Syntax auf Umgebungsvariablen in Headerwerten verweisen. Dev Proxy löst sie auf die gleiche Weise wie in der Ausgabe-URL auf und überspringt die Neuschreibregel, wenn keine Umgebungsvariable festgelegt ist. Kopfzeilenwerte unterstützen keine Erfassungsgruppen aus dem in-Muster .