---
url: https://docs.ogmabox.com/tr/app/match-replace.md
description: >-
  Ogma Eşleştir ve değiştir kurallarıyla kaydedilen HTTP ve WebSocket trafiğini
  otomatik değiştirin.
---

# Eşleştir ve değiştir {#match-replace}

Eşleştir ve değiştir, proxy'den geçen trafiği bekletmeden ve her istekte elle işlem gerektirmeden otomatik olarak değiştirir.

## Kurallar nasıl çalışır? {#how-rules-work}

Her kural ne aranacağını ve ne yapılacağını tanımlar. Bir istek veya yanıt koşullarla eşleştiğinde kural dönüşümünü hemen uygular.

Kurallar listede göründükleri sırayla uygulanır. İki kural aynı başlığı hedeflerse ilk eşleşen kural önce uygulanır, sonraki kurallar bu değişikliğin sonucunu görür.

## Kural alanları {#rule-fields}

| Alan | Açıklama |
| --- | --- |
| Ad | Kuralın etiketi. Amacını belirten açıklayıcı bir ad kullanın. |
| Yön | Kuralın isteklere, yanıtlara veya ikisine uygulanması |
| İşlem | Yapılacak dönüşüm (aşağıdaki işlem tablosuna bakın) |
| Eşleştirme modu | İşleme bağlı olarak düz metin, düzenli ifade veya tam içerik |
| Eşleşme değeri | Bulunacak dize veya desen |
| Değiştirme değeri | Yerine konacak değer |
| Etkin | Kuralı silmeden etkinleştirme veya kapatma anahtarı |
| Filtreler | Kuralın uygulanacağı yerleri sınırlayan isteğe bağlı yöntem, ana makine, yol ve HTTPQL koşulları |

### İşlemler {#operations}

| İşlem | İşlevi |
| --- | --- |
| Başlık ekle | Sabit ad ve değerle yeni başlık ekler |
| Başlığı kaldır | Başlığı adına göre siler |
| Başlığı değiştir | Mevcut başlığın değerini değiştirir |
| Gövdeyi değiştir | Eşleşme değerini kullanarak gövdenin bir kısmını değiştirir |
| Yol / sorgu / sorgu parametresi | İstek yolunu veya sorgu değerlerini değiştirir |
| İstek / yanıt satırı | Seçilen HTTP başlangıç satırı bileşenini değiştirir |
| Durum kodu | Yanıt durumunu değiştirir |
| Ham mesaj | HTTP başlangıç satırını, başlıkları ve gövdeyi birlikte dönüştürür |
| WebSocket veri yükü | Eşleşen istemci/sunucu mesaj içeriğini değiştirir |
| İş akışı | Seçilen içerik üzerinde etkin bir Dönüştür iş akışı çalıştırır |

## Eşleşme modları {#match-modes}

**Düz metin**, dizeyle tam olarak eşleşir. Sabit belirteçler, başlık adları veya belirli değerler için kullanın.

**Düzenli ifade**, düzenli ifadeyle eşleştirir. Hedef değişkense kullanın; örneğin her oturumda değişen bir belirteci eşleştirmek veya bir grubu yakalayıp değiştirmede yeniden kullanmak için.

Düzenli ifade değiştirmelerinde eşleşen kısımlara değiştirme değerinden başvurmak için `$1`, `$2` vb. yakalama gruplarını kullanın.

**Tam**, bir alt dize aramak yerine seçilen içeriğin tamamını dönüşüme iletir. Adlandırılmış başlık ekleme/kaldırma gibi bazı işlemler bunun yerine düz metin adı kullanır ve tüm modları sunmaz.

## Tam yanıt gövdesini dönüştürme {#transforming-a-complete-response-body}

1. **Dönüştür** türünde bir iş akışı oluşturup etkinleştirin, ardından test girdisiyle doğrulayın.
2. Yönü **Yanıt**, işlemi **İş akışı (gövde)** olan bir Eşleştir ve değiştir kuralı oluşturun.
3. **Tam** eşleşme modunu seçin ve iş akışını belirleyin.
4. Kuralı bir HTTPQL filtresiyle daraltın; örneğin:

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

İş akışı tüm gövdeyi alır; çıktısı o gövdenin yerini alır. **İş akışı (başlık)** adlandırılmış bir başlığı, **İş akışı (ham başlıklar)** ise başlık bloğunu dönüştürür. Bunlar yanıt gövdesinden farklı girdilerdir.

HTTPQL filtreleri mevcut istek/yanıt bağlamında kontrol edilir. İstek yönündeki bir kural, henüz gelmemiş yanıta dayanamaz. Kural çok sayıda yürütme üretiyorsa iş akışı günlüklerini kapatın; bir dönüşümü teşhis etmek için geçici olarak açın.

## Kuralları yeniden sıralama {#reordering-rules}

Listedeki konumunu değiştirmek için kural satırını sürükleyin. Kurallar aynı istek veya yanıtın örtüşen kısımlarını değiştirdiğinde sıra önemlidir.

## Yapay zekâ desteği {#ai-assist}

Kural düzenleyicisinde **Yapay zekâyla doldur** düğmesine tıklayıp değiştirmek istediğinizi doğal dilde anlatın. Ogma açıklamanıza göre kural alanlarını oluşturur. Kuralı etkinleştirmeden önce oluşturulan değerleri inceleyip ayarlayın.

Uygun istem örnekleri:

* "Tüm yanıtlardan X-Frame-Options başlığını kaldır"
* "Authorization başlık değerini test belirtecimle değiştir"
* "Tüm isteklere değeri true olan X-Debug adlı bir başlık ekle"

## Kuralı test etme {#testing-a-rule}

Bir kuralı canlı trafik için etkinleştirmeden önce örnek istekle test edin:

1. Kural düzenleyicisini açın.
2. **Test et** paneline ham bir HTTP isteği yapıştırın.
3. **Kuralları uygula** düğmesine tıklayın. Panel sonucu ve uygulanan kuralları gösterir.
4. Çıktının beklentinizle eşleştiğini doğrulayın.
5. Kuralı etkinleştirin.

Test et panelinde durum, başlık ve gövde girdileriyle **Yanıt** hedefi de vardır. Uygulanan kural listesini kontrol edin: bu işlem yalnızca yalıtılmış bir düzenleyici alanını değil, uygulanabilir kuralları test eder.

## Eşleştir ve değiştir ve Trafik durdurma {#match-replace-vs-intercept}

**Eşleştir ve değiştir** otomatiktir. Kural etkinleştirildiğinde sizden işlem beklemeden her eşleşen isteği veya yanıtı dönüştürür.

**Trafik durdurma** trafiği bekletir ve elle karar verilmesini bekler. Doğru değişiklik her istekte değerlendirilmesi gereken bağlama bağlıysa Trafik durdurma kullanın. Aynı dönüşüm her seferinde inceleme olmadan uygulanacaksa Eşleştir ve değiştir kullanın.

## Yaygın kullanımlar {#common-uses}

* Başka bir hesabı test etmek için tüm isteklerde oturum çerezini değiştirme.
* Hata ayıklama veya yönetici modunu etkinleştiren bir başlık ekleme.
* İstemci tarafı davranışını değerlendirmek için yanıtlardan güvenlik başlıklarını kaldırma.
* Yönlendirme yanıtlarında sabit yazılmış ana makineyi değiştirme.
* İstek yolu önekini yeniden yazma.

## İlgili sayfalar {#related-pages}

* [Trafik durdurma](./intercept.md)
* [HTTP geçmişi](./http-history.md)
* [İş akışları](./workflows.md)
