Christian Kruse: SSI neue Syntax für reguläre Ausdrücke

Beitrag lesen

Moin Matthias,

<!--#if expr="$DOCUMENT_URI = /\/([0-9]{4,})\/$DOCUMENT_NAME$/" -->

  <!--#set var="jahr" value="$1" -->

<!--#endif -->

geändert werden, damit das auch mit einem neuen Apachen (2.4?) fehlerfrei funktioniert?

Apache hat die Syntax für Expressions geändert mit 2.4. Nach der EBNF müsste es so aussehen:

<!--#if expr="%{DOCUMENT_URI} = #/([0-9]{4,})/%{DOCUMENT_NAME}$/" -->

   <!--#set var="jahr" value="$1" -->

<!--#endif -->

Dummerweise scheint da aber lt den Kommentaren ein Bug zu sein, also wird es vermutlich eher so aussehen:

<!--#if expr='v("DOCUMENT_URI") = #/([0-9]{4,})/v("DOCUMENT_NAME")$#' -->

   <!--#set var="jahr" value="$1" -->

<!--#endif -->

Die Raute-Zeichen in der RegEx habe ich nach Kommentar gesetzt, \/ scheint auch nicht mehr zu gehen.

Ob du allerdings überhaupt noch Variablen in Regexen benutzen kannst ist zweifelhaft... es sieht mir danach aus, dass der neue Parser eine Funktion benutzt, um Variablen-Werte abzurufen, und dann wird das so vermutlich nichts mehr werden.

LG,

CK