Am 29.11.2020 um 02:16 schrieb Daniel Leidert:
Hallo Daniel
Du nutzt mit '=~' doch eine Regex-Abfrage. Da kannst du auch alle Schlüssel in den Regex-Ausdruck schreiben, ohne jeweils einen neuen Abschnitt schreiben zu müssen. Du kannst deinen Abschnitt sogar kürzen. Schau dir mal das 3. Beispiel unter https://httpd.apache.org/docs/2.4/de/expr.html und https://httpd.apache.org/docs/2.4/howto/access.html#env an.
Alternativ könnte man die file() Funktion vielleicht so nutzen (ungetestet):
<If "%{QUERY_STRING} =~ /key=(\d+)/"> Require expr file('keys.txt') =~ $0
</If>
Ich habe so probiert. Leider geht es nicht... Apache spuckt den Fehler:
Cannot parse expression in require line: syntax error, unexpected T_REGEX_BACKREF, expecting T_REGEX or T_REGEX_I
Hast du eine Idee, wie man das umschreiben kann?
Ich muss dazu sagen, ich weiß nicht, ob Apache hier die längste oder die kürzeste Übereinstimmung ausgibt. Bestimmte Regexe unterstützen die Notation mit einem Fragezeichen am Ende '(\d+?)', um die längste Übereinstimmung
Das wäre gar kein Problem, denn ich kann problemlos alle API-Key mit derselben Länge schreiben
Alternativ kannst du wahrscheinlich auch etwas mit mod_rewrite und RewriteMap basteln, wenn du die Schlüssel aus einer Datei auslesen möchtest.
Das wäre auch eine Möglichkeit, allerdings weiß ich nicht genau, wie ich das machen kann... Hast du vielleicht ein Tipp, bzw. ein Beispiel?
Danke Luca Bertoncello (lucabert@lucabert.de)