SSI neue Syntax für reguläre Ausdrücke
Matthias Apsel
- webserver
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
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
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
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
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
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
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