---
url: https://docs.ogmabox.com/cs/app/match-replace.md
description: >-
  Automaticky upravujte zachycený provoz HTTP a WebSocket pomocí pravidel funkce
  Vyhledat a nahradit v Ogma.
---

# Vyhledat a nahradit {#match-replace}

Funkce Vyhledat a nahradit (Match & Replace) automaticky upravuje provoz při průchodu proxy bez pozastavení nebo ručního zásahu u každého požadavku.

## Jak pravidla fungují {#how-rules-work}

Každé pravidlo definuje, co hledat a co s tím provést. Když požadavek nebo odpověď odpovídá podmínkám, pravidlo ihned provede svou transformaci.

Pravidla se provádějí v pořadí, v jakém se zobrazují v seznamu. Pokud dvě pravidla cílí na stejnou hlavičku, první odpovídající pravidlo se provede jako první a následující pravidla již vidí výsledek této změny.

## Pole pravidla {#rule-fields}

| Pole | Popis |
| --- | --- |
| Název | Označení pravidla. Použijte výstižný název určující jeho účel. |
| Směr | Zda se pravidlo vztahuje na požadavky, odpovědi nebo obojí |
| Operace | Jakou transformaci provést (viz tabulka operací níže) |
| Režim porovnání | Doslovně, regulární výraz nebo celý obsah podle operace |
| Hledaná hodnota | Řetězec nebo vzor, který se má najít |
| Náhradní hodnota | Hodnota, kterou se nalezený obsah nahradí |
| Zapnuto | Přepínač pro aktivaci nebo deaktivaci pravidla bez odstranění |
| Filtry | Volitelné podmínky metody, hostitele, cesty a HTTPQL omezující použití pravidla |

### Operace {#operations}

| Operace | Co dělá |
| --- | --- |
| Přidat hlavičku | Přidá novou hlavičku s pevným názvem a hodnotou |
| Odstranit hlavičku | Odstraní hlavičku podle názvu |
| Nahradit hlavičku | Nahradí hodnotu existující hlavičky |
| Nahradit tělo | Nahradí část těla podle hledané hodnoty |
| Cesta / dotaz / parametr dotazu | Změní cestu požadavku nebo hodnoty dotazu |
| Řádek požadavku / odpovědi | Změní vybranou část úvodního řádku HTTP |
| Stavový kód | Změní stav odpovědi |
| Surová zpráva | Transformuje společně úvodní řádek HTTP, hlavičky a tělo |
| Payload WebSocket | Nahradí odpovídající obsah zprávy klienta/serveru |
| Pracovní postup | Spustí povolený převodní pracovní postup nad vybraným obsahem |

## Režimy shody {#match-modes}

Režim **Doslovně** hledá přesný řetězec. Používejte jej pro pevné tokeny, názvy hlaviček nebo konkrétní hodnoty.

**Regulární výraz** hledá pomocí regulárního výrazu. Používejte jej, když se cíl mění – například pro token měnící se s každou relací nebo pro zachycení a opětovné použití skupiny v náhradě.

V náhradách regulárních výrazů odkazujte na zachycené části pomocí skupin `$1`, `$2` atd. v náhradní hodnotě.

**Celý obsah** předává transformaci celý vybraný obsah místo hledání podřetězce. Některé operace, například přidání nebo odebrání pojmenované hlavičky, místo toho používají doslovný název a nenabízejí všechny režimy.

## Transformace celého těla odpovědi {#transforming-a-complete-response-body}

1. Vytvořte a povolte **převodní** pracovní postup a ověřte jej na testovacím vstupu.
2. Vytvořte pravidlo funkce Vyhledat a nahradit se směrem **Odpověď** a operací **Pracovní postup (tělo)**.
3. Zvolte režim shody **Celý obsah** a vyberte pracovní postup.
4. Omezte pravidlo filtrem HTTPQL, například:

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

Pracovní postup obdrží celé tělo; jeho výstup toto tělo nahradí. **Pracovní postup (hlavička)** transformuje pojmenovanou hlavičku, zatímco **Pracovní postup (nezpracované hlavičky)** transformuje blok hlaviček. Jde o jiné vstupy než tělo odpovědi.

Filtry HTTPQL se vyhodnocují v dostupném kontextu požadavku a odpovědi. Pravidlo pro směr požadavku nemůže záviset na odpovědi, která ještě nepřišla. Pokud pravidlo vytváří velké množství běhů, vypněte protokolování pracovního postupu; dočasně je zapněte pro diagnostiku transformace.

## Změna pořadí pravidel {#reordering-rules}

Přetažením řádku pravidla změňte jeho pozici v seznamu. Pořadí je důležité, když pravidla upravují překrývající se části stejného požadavku nebo odpovědi.

## Pomoc AI {#ai-assist}

V editoru pravidla použijte **Vyplnit pomocí AI** a běžným jazykem popište požadovanou změnu. Ogma podle popisu vygeneruje pole pravidla. Před povolením pravidla vygenerované hodnoty zkontrolujte a upravte.

Příklady vhodných zadání:

* „Odeberte hlavičku X-Frame-Options ze všech odpovědí“
* „Nahraďte hodnotu hlavičky Authorization mým testovacím tokenem“
* „Přidejte do všech požadavků hlavičku s názvem X-Debug a hodnotou true“

## Testování pravidla {#testing-a-rule}

Před povolením pravidla pro živý provoz jej otestujte na vzorovém požadavku:

1. Otevřete editor pravidla.
2. Vložte surový požadavek HTTP do **Testovacího panelu**.
3. Klikněte na **Použít pravidla**. Panel zobrazí výsledek a použitá pravidla.
4. Ověřte, že výstup odpovídá očekávání.
5. Povolte pravidlo.

Testovací panel nabízí také cíl **Odpověď** se vstupy pro stav, hlavičky a tělo. Zkontrolujte seznam použitých pravidel: testují se příslušná pravidla, nikoli pouze izolované pole editoru.

## Vyhledat a nahradit a Zachytávání {#match-replace-vs-intercept}

**Vyhledat a nahradit** pracuje automaticky. Jakmile je pravidlo povoleno, transformuje každý odpovídající požadavek nebo odpověď bez vašeho zásahu.

**Zachytávání** pozastavuje provoz a čeká na ruční rozhodnutí. Použijte Zachytávání, když správná změna závisí na kontextu, který musíte vyhodnotit pro každý požadavek. Funkci Vyhledat a nahradit použijte, když se má stejná transformace provést pokaždé bez kontroly.

## Běžné použití {#common-uses}

* Vyměňte cookie relace ve všech požadavcích pro testování jiného účtu.
* Přidejte hlavičku zapínající ladicí nebo administrátorský režim.
* Odeberte bezpečnostní hlavičky z odpovědí pro vyhodnocení chování na straně klienta.
* Nahraďte pevně zadaného hostitele v odpovědích s přesměrováním.
* Přepište předponu cesty požadavku.

## Související stránky {#related-pages}

* [Zachytávání](./intercept.md)
* [Historie HTTP](./http-history.md)
* [Pracovní postupy](./workflows.md)
