Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Reescreve pedidos.
Exemplo de configuração
{
"$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"
}
}
Propriedades de configuração
| Propriedade | Descrição | Predefinido |
|---|---|---|
rewritesFile |
Caminho para o arquivo que contém definições de regravação | rewrites.json |
Opções de linha de comando
Nenhuma
Reescrever exemplos de arquivo
Seguem-se exemplos de regras de reescrita.
Reescreva todas as solicitações de HTTP para HTTPS
Reescreva todas as solicitações de HTTP para HTTPS. Neste contexto, tudo significa todas as solicitações configuradas com o Dev Proxy ou 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"
}
}
]
}
Definir um cabeçalho de pedido
Defina o Accept-Language cabeçalho de todos os pedidos para https://api.contoso.com. Se o pedido já tiver o cabeçalho, o plugin substitui o seu valor. Se o cabeçalho estiver em falta, o plugin adiciona-o. Como a regra não especifica um URL de saída , o plugin não altera o URL do pedido.
{
"$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"
}
]
}
}
]
}
Pedidos de reescrita para uma URL a partir de uma variável de ambiente
Reescrever os pedidos para https://api.contoso.com a URL base armazenada na API_BASE_URL variável de ambiente, preservando o resto do caminho.
{
"$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 propriedades de arquivo
| Propriedade | Descrição | Obrigatório |
|---|---|---|
rewrites |
Matriz de objetos de reescrita que define a lista de regras de reescrita que o RewritePlugin aplica às solicitações intercetadas | sim |
Reescrever objeto
Cada regra de reescrita tem as seguintes propriedades:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
in |
Reescreva o padrão para corresponder à solicitação de entrada. | sim |
out |
Reescrever padrão para reescrever a solicitação | sim |
Observações
Se a solicitação intercetada pelo RewritePlugin não corresponder a todas as propriedades definidas no padrão in, o plug-in não aplicará a regra de regravação à solicitação.
Padrão de reescrita
Cada padrão de reescrita tem as seguintes propriedades:
| Propriedade | Descrição | Obrigatório | Valor predefinido | Valores de exemplo |
|---|---|---|---|---|
url |
No padrão in , expressão regular que o plugin aplica à URL. No padrão out , URL para reescrever o pedido. Se o omitir no padrão out , o plugin não altera o URL do pedido. | sim, entra, não, entra, sai | ^http://(.*) |
|
headers |
Array de cabeçalhos de pedido para definir no pedido. Suportado apenas no padrão para fora . | no |
Observações
O padrão out deve especificar url, headers, ou ambos.
Se você usar grupos de captura na expressão regular nos padrões in , poderá fazer referência a eles no padrão out . Por exemplo, se quiser reescrever http://example.com/foo no https://example.com/foo, você pode usar a seguinte regra de reescrita:
{
"$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"
}
}
]
}
Na URL de saída , podes referenciar variáveis de ambiente usando a ${env:VAR_NAME} sintaxe. Dev Proxy insere o valor da variável de ambiente as-is, pelo que o valor também pode referir-se a grupos de captura do padrão in . O Dev Proxy resolve as variáveis de ambiente apenas para pedidos que correspondem ao padrão in e não expande as variáveis de ambiente no padrão in . Se uma variável de ambiente referenciada não estiver definida, o Proxy de Desenvolvimento regista um erro e ignora a regra de reescrita.
Cabeçalho da requisição
Cada cabeçalho de pedido tem as seguintes propriedades:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
name |
Nome do cabeçalho do pedido | sim |
value |
Valor a definir para o cabeçalho do pedido | sim |
Observações
O plugin corresponde aos nomes dos cabeçalhos de forma insensível a maiúsculas e minúsculas. Se o pedido já tiver o cabeçalho, o plugin substitui o seu valor. Se o cabeçalho estiver em falta, o plugin adiciona-o.
O plugin define cabeçalhos apenas em pedidos cujo URL corresponde ao padrão de URL in . O plugin avalia a correspondência antes de aplicar a reescrita do URL da mesma regra, por isso, quando uma regra reescreve tanto o URL como os cabeçalhos, os cabeçalhos aplicam-se aos mesmos pedidos da reescrita do URL.
Pode referenciar variáveis de ambiente nos valores do cabeçalho usando a ${env:VAR_NAME} sintaxe. O Proxy de desenvolvimento resolve-os da mesma forma que na URL de saída , e ignora a regra de reescrita se uma variável de ambiente referenciada não estiver definida. Os valores de cabeçalho não suportam grupos de captura do padrão in .