Apache regex Rückverweise UNREACHABLE in httpd 2.4?

8

Ich liebe die neue Apache httpd 2.4 mit vielen neuen coolen Sachen!

ap_expr ist eines dieser neuen vielversprechenden Features,

.. ABER das folgende SSI-Snippet funktioniert nicht wie erwartet:

%Vor%

Das if funktioniert, ABER die Variable ist nicht gesetzt! Das ergibt keinen Sinn.

error.log sagt:

%Vor%

Das Dokument ( Ссылка ) ist verwirrend und hat keine Beispiele überall in der Nähe.

Ich weiß, dass es einen Legacy (Workaround) Switch für SSI gibt, aber ich möchte ihn nicht verwenden, da alte Start- und End-Tags gezwungen werden Legacy

Das Ausführen ähnlicher Regex-Parsing-Tricks mit SetEnvIfExpr hilft auch nicht

    
kjetildm 18.04.2013, 19:48
quelle

3 Antworten

1

durch Ändern

%Vor%

bis

%Vor%

Man kann das Problem mit der Tatsache umgehen, dass $ 0 zu funktionieren scheint

    
lijat 20.04.2015 07:57
quelle
0

Gemäß der Dokumentation :

  

Rückreferenzen für reguläre Ausdrücke   Die Strings $ 0 ... $ 9 erlauben es, die Capture-Gruppen von zuvor ausgeführten, erfolgreich passenden regulären Ausdrücken zu referenzieren. Sie können normalerweise nur im selben Ausdruck wie die passende Regex verwendet werden, aber einige Module erlauben spezielle Anwendungen.

Sie verwenden eine Erfassungsgruppe, und Sie verweisen darauf, dass der Index 1 verwendet wird. Dies sollte mit einer Standard-Regex-Engine in Ordnung sein, aber gemäß der Dokumentation können Sie auf 0... verweisen. Ich denke, Apache füllt die inde 1 mit der Capturing Group anstatt mit regex capture is out of range und das ist die

Ändern Sie den Index %code% in %code% mit:

%Vor%     
Federico Piazza 08.04.2015 19:45
quelle
0
%Vor%     
Leineweber 30.09.2015 13:02
quelle