Doppelte Schrägstriche aus Anfragen entfernen

Problem: Doppelte Schrägstriche in einer Anfrage können dazu führen, dass die Anfrage nicht aufgelöst wird.

Jede Anfrage, die zwei oder mehr aufeinanderfolgende Schrägstriche enthält, kann zu einem 404-Fehler führen. Beispiel: /hello//world/. Das Problem in diesem Beispiel ist das "//" zwischen hello und world.

Lösung: Filtern nach doppelten Schrägstrichen

Wenden Sie eine Konfiguration auf das Istio Ingress an, um in Anfragen nach doppelten Schrägstrichen zu filtern und sie zu ersetzen.

  1. Erstellen Sie eine neue Konfigurationsdatei mit dem Namen apigee-merge-slash-filter.yaml.
  2. Fügen Sie Folgendes in die Datei ein:
    apiVersion: networking.istio.io/v1alpha3
    kind: EnvoyFilter
    metadata:
      name: apigee-merge-slashes
      namespace: istio-system
    spec:
      workloadSelector:
        labels:
          app: istio-ingressgateway
      configPatches:
      - applyTo: NETWORK_FILTER # http connection manager is a filter in Envoy
        match:
          context: GATEWAY
          listener:
            filterChain:
              filter:
                name: "envoy.http_connection_manager"
        patch:
          operation: MERGE
          value:
            typed_config:
              "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager"
              merge_slashes: true
  3. Wenden Sie die Konfiguration mit diesem Befehl an:
    kubectl apply -f apigee-merge-slash-filter.yaml