Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Reescritura las solicitudes.
Ejemplo de configuración
{
"$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"
}
}
Propiedades de configuración
| Propiedad | Descripción | Valor predeterminado |
|---|---|---|
rewritesFile |
Ruta de acceso al archivo que contiene definiciones de reescritura | rewrites.json |
Opciones de línea de comandos
Ninguno
Ejemplos de archivos de reescritura
A continuación se muestran ejemplos de reglas de reescritura.
Reescritura de todas las solicitudes de HTTP a HTTPS
Vuelva a escribir todas las solicitudes de HTTP a HTTPS. En este contexto, todo significa todas las solicitudes configuradas con proxy de desarrollo 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"
}
}
]
}
Establecimiento de un encabezado de solicitud
Establezca el Accept-Language encabezado en todas las solicitudes en https://api.contoso.com. Si la solicitud ya tiene el encabezado , el complemento reemplaza su valor. Si falta el encabezado, el complemento lo agrega. Dado que la regla no especifica una dirección URL de salida , el complemento no cambia la dirección URL de la solicitud.
{
"$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"
}
]
}
}
]
}
Reescritura de solicitudes a una dirección URL desde una variable de entorno
Vuelva a escribir las solicitudes a https://api.contoso.com la dirección URL base almacenada en la API_BASE_URL variable de entorno, conservando el resto de la ruta de acceso.
{
"$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"
}
}
]
}
Propiedades de archivo simuladas
| Propiedad | Descripción | Obligatorio |
|---|---|---|
rewrites |
Matriz de objetos de reescritura que define la lista de reglas de reescritura que el RewritePlugin aplica a las solicitudes que intercepta | sí |
Reescritura del objeto
Cada regla de reescritura tiene las siguientes propiedades:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
in |
Vuelva a escribir el patrón para que coincida con la solicitud entrante. | sí |
out |
Patrón de reescritura para volver a escribir la solicitud | sí |
Comentarios
Si la solicitud que intercepta RewritePlugin, no coincide con todas las propiedades definidas en el patrón in , el complemento no aplica la regla de reescritura a la solicitud.
Patrón de reescritura
Cada patrón de reescritura tiene las siguientes propiedades:
| Propiedad | Descripción | Obligatorio | Valor predeterminado | Valor de ejemplo |
|---|---|---|---|---|
url |
En el patrón in , expresión regular que el complemento aplica a la dirección URL. En el patrón de salida , dirección URL a la que volver a escribir la solicitud. Si lo omite en el patrón de salida , el complemento no cambia la dirección URL de la solicitud. | Sí , no dentro, no dentro | ^http://(.*) |
|
headers |
Matriz de encabezados de solicitud que se van a establecer en la solicitud. Solo se admite en el patrón de salida . | no |
Comentarios
El patrón out debe especificar url, headerso ambos.
Si usa grupos de captura en la expresión regular en los patrones , puede hacer referencia a ellos en el patrón out. Por ejemplo, si desea volver a escribir http://example.com/foo en https://example.com/foo, puede usar la siguiente regla de reescritura:
{
"$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"
}
}
]
}
En la dirección URL de salida , puede hacer referencia a variables de entorno mediante la ${env:VAR_NAME} sintaxis . Dev Proxy inserta el valor de la variable de entorno as-is, por lo que el valor también puede hacer referencia a los grupos de captura del patrón in . Dev Proxy resuelve las variables de entorno solo para las solicitudes que coinciden con el patrón in y no expande variables de entorno en el patrón in . Si no se establece una variable de entorno a la que se hace referencia, Dev Proxy registra un error y omite la regla de reescritura.
Cabecera de solicitud
Cada encabezado de solicitud tiene las siguientes propiedades:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
name |
Nombre del encabezado de solicitud | sí |
value |
Valor que se va a establecer para el encabezado de solicitud | sí |
Comentarios
El complemento coincide con los nombres de encabezado sin distinción entre mayúsculas y minúsculas. Si la solicitud ya tiene el encabezado , el complemento reemplaza su valor. Si falta el encabezado, el complemento lo agrega.
El complemento solo establece encabezados en solicitudes cuya dirección URL coincide con el patrón de dirección URL. El complemento evalúa la coincidencia antes de aplicar la reescritura de dirección URL de la misma regla, por lo que cuando una regla vuelve a escribir la dirección URL y los encabezados, los encabezados se aplican a las mismas solicitudes que la reescritura de la dirección URL.
Puede hacer referencia a variables de entorno en valores de encabezado mediante la ${env:VAR_NAME} sintaxis . El proxy de desarrollo los resuelve de la misma manera que en la dirección URL de salida y omite la regla de reescritura si no se establece una variable de entorno a la que se hace referencia. Los valores de encabezado no admiten grupos de captura del patrón in .