---
url: https://docs.ogmabox.com/it/app/match-replace.md
description: >-
  Modifica automaticamente il traffico HTTP e WebSocket acquisito con le regole
  di Trova e sostituisci di Ogma.
---

# Trova e sostituisci {#match-replace}

Trova e sostituisci modifica automaticamente il traffico mentre attraversa il proxy, senza pause né interventi manuali su ogni richiesta.

## Come funzionano le regole {#how-rules-work}

Ogni regola definisce cosa cercare e cosa farne. Quando una richiesta o risposta corrisponde alle condizioni, la regola applica immediatamente la sua trasformazione.

Le regole si applicano nell'ordine in cui appaiono nell'elenco. Se due regole agiscono sulla stessa intestazione, la prima regola corrispondente viene applicata per prima e quelle successive vedono il risultato della modifica.

## Campi di una regola {#rule-fields}

| Campo | Descrizione |
| --- | --- |
| Nome | Etichetta della regola. Usa un nome descrittivo per identificarne la finalità. |
| Direzione | Se la regola si applica a richieste, risposte o entrambe |
| Operazione | Quale trasformazione eseguire (vedi la tabella delle operazioni sotto) |
| Modalità di corrispondenza | Letterale, espressione regolare o contenuto completo, a seconda dell'operazione |
| Valore da trovare | La stringa o il pattern da cercare |
| Valore sostitutivo | Il valore da inserire come sostituzione |
| Attivato | Interruttore per attivare o disattivare la regola senza eliminarla |
| Filtri | Condizioni facoltative di metodo, host, percorso e HTTPQL che limitano dove si applica la regola |

### Operazioni {#operations}

| Operazione | Cosa fa |
| --- | --- |
| Aggiungi intestazione | Aggiunge una nuova intestazione con nome e valore fissi |
| Rimuovi intestazione | Elimina un'intestazione per nome |
| Sostituisci intestazione | Sostituisce il valore di un'intestazione esistente |
| Sostituisci corpo | Sostituisce una parte del corpo usando il valore da trovare |
| Percorso / query / parametro di query | Cambia il percorso della richiesta o i valori della query |
| Riga di richiesta / risposta | Cambia il componente selezionato della riga iniziale HTTP |
| Codice di stato | Cambia lo stato di una risposta |
| Messaggio grezzo | Trasforma insieme la riga iniziale HTTP, le intestazioni e il corpo |
| Payload WebSocket | Sostituisce il contenuto corrispondente dei messaggi del client/server |
| Flusso di lavoro | Esegue un flusso di tipo Converti attivato sul contenuto selezionato |

## Modalità di corrispondenza {#match-modes}

**Letterale** corrisponde alla stringa esatta. Usala per token fissi, nomi di intestazioni o valori specifici.

**Espressione regolare** cerca corrispondenze usando un'espressione regolare. Usala quando il target varia, ad esempio per trovare un token che cambia a ogni sessione o per acquisire e riutilizzare un gruppo nella sostituzione.

Nelle sostituzioni con espressioni regolari, usa i gruppi di cattura con `$1`, `$2`, ecc. per referenziare le parti corrispondenti nel valore sostitutivo.

**Completa** passa tutto il contenuto selezionato alla trasformazione anziché cercare una sottostringa. Alcune operazioni, come aggiungere/rimuovere un'intestazione con nome, usano invece un nome letterale e non offrono tutte le modalità.

## Trasformare un corpo di risposta completo {#transforming-a-complete-response-body}

1. Crea e attiva un flusso di tipo **Converti**, quindi validalo con dati di prova.
2. Crea una regola di Trova e sostituisci con direzione **Risposta** e operazione **Flusso di lavoro (corpo)**.
3. Scegli la modalità di corrispondenza **Completa** e seleziona il flusso.
4. Limita la regola con un filtro HTTPQL, ad esempio:

```text
req.host.eq:"cdn.example.com" AND (req.path.cont:".js" OR resp.headers["Content-Type"].value.cont:"javascript")
```

Il flusso riceve l'intero corpo; il suo output sostituisce quel corpo. **Flusso di lavoro (intestazione)** trasforma un'intestazione con nome, mentre **Flusso di lavoro (intestazioni grezze)** trasforma il blocco delle intestazioni. Sono input diversi dal corpo della risposta.

I filtri HTTPQL vengono verificati nel contesto di richiesta/risposta disponibile. Una regola con direzione richiesta non può dipendere da una risposta che non è ancora arrivata. Disattiva la registrazione del flusso quando la regola produce un volume elevato di esecuzioni; attivala temporaneamente per diagnosticare una trasformazione.

## Riordinare le regole {#reordering-rules}

Trascina una riga di regola per riposizionarla nell'elenco. L'ordine conta quando le regole modificano parti sovrapposte della stessa richiesta o risposta.

## Assistenza IA {#ai-assist}

Fai clic su **Assistenza IA** nell'editor della regola e descrivi in linguaggio naturale cosa vuoi cambiare. Ogma genera i campi della regola in base alla descrizione. Esamina e modifica i valori generati prima di attivare la regola.

Esempi di istruzioni efficaci:

* "Rimuovi l'intestazione X-Frame-Options da tutte le risposte"
* "Sostituisci il valore dell'intestazione Authorization con il mio token di prova"
* "Aggiungi un'intestazione chiamata X-Debug con valore true a tutte le richieste"

## Testare una regola {#testing-a-rule}

Prima di attivare una regola per il traffico reale, testala con una richiesta di esempio:

1. Apri l'editor della regola.
2. Incolla una richiesta HTTP grezza nel pannello **Test**.
3. Fai clic su **Applica regole**. Il pannello mostra il risultato e quali regole sono state applicate.
4. Verifica che l'output corrisponda alle aspettative.
5. Attiva la regola.

Il pannello Test ha anche un target **Risposta** con input di stato, intestazioni e corpo. Controlla l'elenco delle regole applicate: vengono testate le regole applicabili, non solo un campo isolato dell'editor.

## Trova e sostituisci e Intercettazione {#match-replace-vs-intercept}

**Trova e sostituisci** è automatico. Quando una regola è attiva, trasforma ogni richiesta o risposta corrispondente senza alcun intervento da parte tua.

**Intercettazione** mette in pausa il traffico e attende una decisione manuale. Usa Intercettazione quando la modifica corretta dipende da un contesto da valutare per ogni richiesta. Usa Trova e sostituisci quando la stessa trasformazione deve applicarsi ogni volta senza esame manuale.

## Usi comuni {#common-uses}

* Sostituire un cookie di sessione in tutte le richieste per testare un altro account.
* Aggiungere un'intestazione che attiva una modalità di debug o amministrazione.
* Rimuovere intestazioni di sicurezza dalle risposte per valutare il comportamento lato client.
* Sostituire un host codificato in modo fisso nelle risposte di reindirizzamento.
* Riscrivere un prefisso del percorso di richiesta.

## Pagine correlate {#related-pages}

* [Intercettazione](./intercept.md)
* [Cronologia HTTP](./http-history.md)
* [Flussi di lavoro](./workflows.md)
