Wenn ich in der Datei vars.shtml nur angebe:
<!--#set var="MyEnv1" value="tz" -->
kommt kein Fehler, also scheint das if-statement nicht akzeptiert zu werden.
Ich tippe auf den Microsoft-IIS. Der versteht kein IF!
Hallo,
ich hänge immer noch an dem Problem und hoffe, es liest noch jemand hier mit, der mir weiterhelfen kann.
Ein if wird offensichtlich verstanden, nur nicht der meinige.
Es liegt also vermutlich an meinem regulären Ausdruck (Test4), der bei mir wie gewollt funktioniert und auf dem Server meines Providers nicht.
Ich habe folgendes Beispiel erstellt um mich an den Fehler heranzutasten.
Irgendwie scheint es an der Klammerung u liegen. Gelten hier vielleicht andere Regeln für reg. Ausdrücke?
Mein Beispiel:
<html>
<head>
<title>SSI-Test</title>
<body>
<!--#set var="TEST" value="xxxxx.shtml" -->
<!--#if expr="$TEST = /xxxxx.shtml/" -->
<!--#set var="ERG" value="xxxxx.shtml" -->
<!--#else -->
<!--#set var="ERG" value="Fehler" -->
<!--#endif -->
Test1: <!--#echo var="ERG" -->
<br>
<!--#if expr="$TEST = /(xxxxx.shtml)/" -->
<!--#set var="ERG" value="**$1**" -->
<!--#else -->
<!--#set var="ERG" value="Fehler" -->
<!--#endif -->
Test2: <!--#echo var="ERG" -->
<br>
<!--#if expr="$TEST = /\(xxxxx.shtml\)/" -->
<!--#set var="ERG" value="**$1**" -->
<!--#else -->
<!--#set var="ERG" value="Fehler" -->
<!--#endif -->
Test3: <!--#echo var="ERG" -->
<br>
<!--#if expr="$TEST=/^(.*)\.shtml$/" -->
<!--#set var="ERG" value="$1" -->
<!--#else -->
<!--#set var="ERG" value="Fehler" -->
<!--#endif -->
Test4: <!--#echo var="ERG" -->
<br>
</body>
</html>
Ergebnis:
Test1: xxxxx.shtml
[an error occurred while processing this directive] Test2: Fehler
Test3: ****
[an error occurred while processing this directive] Test4: Fehler
Gruß
Bertram