Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Reescreve as solicitações.
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 | Padrão |
|---|---|---|
rewritesFile |
Caminho para o arquivo que contém definições de reescrita | rewrites.json |
Opções de linha de comando
Nenhum
Exemplos de regravação de arquivo
A seguir estão exemplos de regras de reescrita.
Reescreva todas as solicitações de HTTP para HTTPS
Reescreva todas as solicitações de HTTP para HTTPS. Nesse contexto, todos significam 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 solicitação
Defina o Accept-Language cabeçalho em todas as solicitações como https://api.contoso.com. Se a solicitação já tiver o cabeçalho, o plug-in substituirá seu valor. Se o cabeçalho estiver ausente, o plug-in o adicionará. Como a regra não especifica uma URL de saída , o plug-in não altera a URL da solicitação.
{
"$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"
}
]
}
}
]
}
Reescrever solicitações para uma URL de uma variável de ambiente
Reescreva solicitações para https://api.contoso.com a URL base armazenada na variável de API_BASE_URL ambiente, preservando o restante 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"
}
}
]
}
Propriedades do arquivo simulado
| 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 que intercepta | 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 |
Comentários
Se a solicitação que o RewritePlugin intercepta não corresponder a todas as propriedades definidas no padrão in , o plug-in não aplicará a regra de reescrita à solicitação.
Padrão de reescrita
Cada padrão de reescrita tem as seguintes propriedades:
| Propriedade | Descrição | Obrigatório | Valor padrão | Valor de exemplo |
|---|---|---|---|---|
url |
No padrão in , expressão regular que o plug-in aplica à URL. No padrão out , a URL para a qual reescrever a solicitação. Se você omitir no padrão de saída , o plug-in não alterará a URL da solicitação. | Sim , dentro, não em fora | ^http://(.*) |
|
headers |
Matriz de cabeçalhos de solicitação a serem definidos na solicitação. Com suporte apenas no padrão de saída . | no |
Comentários
O padrão de saída deve especificar url, headersou ambos.
Se você usar grupos de captura na expressão regular nos padrões in , poderá se referir a eles no padrão out . Por exemplo, se você quiser reescrever http://example.com/foo para https://example.com/foo, poderá 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 , você pode referenciar variáveis de ambiente usando a ${env:VAR_NAME} sintaxe. O Proxy de Desenvolvimento insere o valor da variável de ambiente as-is, de modo que o valor também pode se referir a grupos de captura do padrão in . O Proxy de Desenvolvimento resolve variáveis de ambiente apenas para solicitações que correspondem ao padrão in e não expandem variáveis de ambiente no padrão em . Se uma variável de ambiente referenciada não estiver definida, o Proxy de Desenvolvimento registrará um erro e ignorará a regra de reescrita.
Cabeçalho da solicitação
Cada cabeçalho de solicitação tem as seguintes propriedades:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
name |
Nome do cabeçalho da solicitação | sim |
value |
Valor a ser definido para o cabeçalho da solicitação | sim |
Comentários
O plug-in corresponde a nomes de cabeçalho sem diferenciar maiúsculas de minúsculas. Se a solicitação já tiver o cabeçalho, o plug-in substituirá seu valor. Se o cabeçalho estiver ausente, o plug-in o adicionará.
O plug-in define cabeçalhos somente em solicitações cuja URL corresponde ao padrão de URL in . O plug-in avalia a correspondência antes de aplicar a reescrita de URL da mesma regra, portanto, quando uma regra reescreve a URL e os cabeçalhos, os cabeçalhos se aplicam às mesmas solicitações que a regravação da URL.
Você pode referenciar variáveis de ambiente em valores de cabeçalho usando a ${env:VAR_NAME} sintaxe. O Proxy de Desenvolvimento os resolve da mesma maneira 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 dão suporte a grupos de captura do padrão in .