Matthias Apsel: SSI neue Syntax für reguläre Ausdrücke

Om nah hoo pez nyeetz, alle!

Mit den neuen Apachen(?) funktionieren meine SSI-Abfragen nicht mehr. Ich hatte die Frage schon einmal gestellt, kann sie aber im Archiv nicht finden. Wie muss

<!--#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?

Matthias

--
Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Kot und Kotelett.

  1. Hi!

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

    Vielleicht hilft dir das weiter:

    Add the SSILegacyExprParser on directive to switch to the old syntax which is compatible with Apache HTTPD version 2.2.x and earlier... (stackoverflow)

    Schönen Abend, Robert

    1. Om nah hoo pez nyeetz, Jonny 5!

      Vielleicht hilft dir das weiter:

      Add the SSILegacyExprParser on directive to switch to the old syntax which is compatible with Apache HTTPD version 2.2.x and earlier...

      Leider nein, ich will ja nicht die alte Syntax erlauben, sondern mir tatsächlich die Mühe machen, meine SSI-Expressions umzuschreiben. Wenns garnicht geht, dann eben PHP.

      Matthias

      --
      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Plan und Plantage.

  2. Hi!

    Om nah hoo pez nyeetz, alle!

    Mit den neuen Apachen(?) funktionieren meine SSI-Abfragen nicht mehr. Ich hatte die Frage schon einmal gestellt, kann sie aber im Archiv nicht finden.

    Daran kann ich mich sogar noch erinnern.
    Vinzenz Mai hat dir damals geholfen.

    Bei deinem eigentlichen Problem kann ich dir aber leider nicht helfen.

    FG Ulysses

    1. Om nah hoo pez nyeetz, Ulysses!

      Schön mal wieder von dir zu lesen. :)

      Vinzenz Mai hat dir damals geholfen.

      Ja, und auch du warst nicht unbeteiligt. Wie ich schon schrieb, werde ich auf PHP ausweichen. Der Provider gibt es her.

      Bei deinem eigentlichen Problem kann ich dir aber leider nicht helfen.

      Möglicherweise gibt es auch keine andere Lösung, als auf SSI zu verzichten wie Christian schrieb.

      Matthias

      --
      [remote-signature:http://selfhtml.apsel-mv.de/java-javascript/signatur.php]

  3. 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

    1. Om nah hoo pez nyeetz, Christian Kruse!

      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.

      Danke für deine Analyse.

      Matthias

      --
      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Stau und Staubsauger.