Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ponownie zapisuje żądania.
Przykład konfiguracji
{
"$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"
}
}
Właściwości konfiguracji
| Właściwości | opis | Wartość domyślna |
|---|---|---|
rewritesFile |
Ścieżka do pliku zawierającego definicje ponownego zapisywania | rewrites.json |
Opcje wiersza polecenia
Brak
Ponowne zapisywanie przykładów plików
Poniżej przedstawiono przykłady reguł ponownego zapisywania.
Ponowne zapisywanie wszystkich żądań z protokołu HTTP do protokołu HTTPS
Ponowne zapisywanie wszystkich żądań z protokołu HTTP do protokołu HTTPS. W tym kontekście wszystkie żądania skonfigurowane za pomocą serwera proxy deweloperskiego lub serwera 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"
}
}
]
}
Ustawianie nagłówka żądania
Accept-Language Ustaw nagłówek dla wszystkich żądań na https://api.contoso.comwartość . Jeśli żądanie ma już nagłówek, wtyczka zastępuje jego wartość. Jeśli brakuje nagłówka, wtyczka ją doda. Ponieważ reguła nie określa wychodzącego adresu URL, wtyczka nie zmienia adresu URL żądania.
{
"$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"
}
]
}
}
]
}
Ponowne zapisywanie żądań do adresu URL ze zmiennej środowiskowej
Ponowne zapisywanie żądań do https://api.contoso.com podstawowego adresu URL przechowywanego API_BASE_URL w zmiennej środowiskowej, zachowując pozostałą część ścieżki.
{
"$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"
}
}
]
}
Makietuje właściwości pliku
| Właściwości | opis | Wymagania |
|---|---|---|
rewrites |
Tablica obiektów ponownego zapisywania, które definiują listę reguł ponownego zapisywania, które rewritePlugin ma zastosowanie do żądań przechwyconych | tak |
Ponowne zapisywanie obiektu
Każda reguła ponownego zapisywania ma następujące właściwości:
| Właściwości | opis | Wymagania |
|---|---|---|
in |
Zastąp wzorzec ponownego zapisywania, aby dopasować żądanie przychodzące. | tak |
out |
Ponowne zapisywanie wzorca w celu ponownego zapisania żądania | tak |
Uwagi
Jeśli żądanie przechwytuje polecenie RewritePlugin, nie pasuje do wszystkich właściwości zdefiniowanych we wzorcu, wtyczka nie stosuje reguły ponownego zapisywania do żądania.
Wzorzec ponownego zapisywania
Każdy wzorzec ponownego zapisywania ma następujące właściwości:
| Właściwości | opis | Wymagania | Domyślna wartość | Przykładowa wartość |
|---|---|---|---|---|
url |
We wzorcu wyrażeń regularnych, które wtyczka ma zastosowanie do adresu URL. We wzorcu out adres URL do ponownego zapisania żądania. Jeśli pominięto go we wzorcu out , wtyczka nie zmieni adresu URL żądania. | Tak w, nie na wyj. | ^http://(.*) |
|
headers |
Tablica nagłówków żądań do ustawienia na żądanie. Obsługiwane tylko we wzorcu out . | no |
Uwagi
Wzorzec out musi określać wartość , headerslub oba te elementyurl.
Jeśli używasz grup przechwytywania w wyrażeniu regularnym we wzorcach, możesz odwoływać się do nich we wzorcu out . Jeśli na przykład chcesz ponownie napisać http://example.com/foohttps://example.com/fooplik , możesz użyć następującej reguły ponownego zapisywania:
{
"$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"
}
}
]
}
W adresie URL out można odwoływać się do zmiennych środowiskowych przy użyciu ${env:VAR_NAME} składni . Serwer proxy deweloperów wstawia wartość zmiennej środowiskowej as-is, dzięki czemu wartość może również odwoływać się do grup przechwytywania ze wzorca in . Serwer proxy deweloperów rozpoznaje zmienne środowiskowe tylko dla żądań, które są zgodne ze wzorcem i nie rozszerza zmiennych środowiskowych we wzorcu . Jeśli nie ustawiono zmiennej środowiskowej, serwer proxy deweloperów rejestruje błąd i pomija regułę ponownego zapisywania.
Nagłówek żądania
Każdy nagłówek żądania ma następujące właściwości:
| Właściwości | opis | Wymagania |
|---|---|---|
name |
Nazwa nagłówka żądania | tak |
value |
Wartość ustawiona dla nagłówka żądania | tak |
Uwagi
Wtyczka dopasowuje nazwy nagłówków bez uwzględniania wielkości liter. Jeśli żądanie ma już nagłówek, wtyczka zastępuje jego wartość. Jeśli brakuje nagłówka, wtyczka ją doda.
Wtyczka ustawia nagłówki tylko na żądaniach, których adres URL pasuje do wzorca adresu URL. Wtyczka ocenia dopasowanie przed zastosowaniem ponownego zapisywania adresu URL tej samej reguły, więc gdy reguła ponownie zapisuje adres URL i nagłówki, nagłówki mają zastosowanie do tych samych żądań, co ponowne zapisywanie adresu URL.
Zmienne środowiskowe można odwoływać się do wartości nagłówka ${env:VAR_NAME} przy użyciu składni. Serwer proxy deweloperów rozpoznaje je tak samo jak w adresie URL wychodzącym i pomija regułę ponownego zapisywania, jeśli nie ustawiono przywoływanej zmiennej środowiskowej. Wartości nagłówków nie obsługują grup przechwytywania ze wzorca in .