Gunnar Bittersmann: (ZUR INFO) SSI: #if #else #endif bei web.de

<p><!--#echo var="SERVER_SOFTWARE"-->:  
<!--#if expr="1=1"-->true<!--#else-->false<!--#endif--></p>

sollte eigentlich sowas wie "Apache: true" ausgeben;

<p><!--#echo var="SERVER_SOFTWARE"-->:  
<!--#if expr="1=2"-->true<!--#else-->false<!--#endif--></p>

hingegen "Apache: false".

Funktioniert auch auf einer bei bei all-inkl.com gehosteten Seite.

Nicht jedoch auf einer bei bei web.de gehosteten:

Erstes ergibt:

<p>Apache/1.3.34 Ben-SSL/1.55:  
true[an error occurred while processing this directive]

Zweites lediglich:

<p>Apache/1.3.34 Ben-SSL/1.55:

'<!--#echo var="SERVER_SOFTWARE"-->' und '<!--#if expr="foo"-->' versteht der Server; '<!--#else-->' und '<!--#endif-->' jedoch nicht.

Da frage ich mich: Bin ich zu blöd oder der Server von web.de?

Des Rätsels Lösung: Es muus dort '<!--#else -->' und '<!--#endif -->' heißen – mit Leerzeichen. (Bei den anderen beiden Direktiven sind keine Leerzeichen vor '-->' erforderlich.)

„Aber wem erzähle ich das? Dem wissend zwinkernden? Wahrscheinlich doch nur dem Archiv.“ [at]

Die oben gestellte Frage möge jeder für sich beantworten.

Live long and prosper,
Gunnar

--
„Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
  1. Hi,

    Des Rätsels Lösung: Es muus dort '<!--#else -->' und '<!--#endif -->' heißen – mit Leerzeichen. (Bei den anderen beiden Direktiven sind keine Leerzeichen vor '-->' erforderlich.)

    Zitat aus http://httpd.apache.org/docs/1.3/mod/mod_include.html(leider ohne passenden Anker bei "Basic Elements") bzw. http://httpd.apache.org/docs/2.0/mod/mod_include.html#elements bzw. http://httpd.apache.org/docs/2.2/mod/mod_include.html#elements
    Note that the comment terminator (-->) should be preceded by whitespace to ensure that it isn't considered part of an SSI token.

    Also ein klassischer RTFM-Fall.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. @@MudGuard:

      Also ein klassischer RTFM-Fall.

      Bäh!

      Naja, dass sich zwei verschiedene Server unterschiedlich verhalten bzw. sich ein und derselbe Server bei verschiedenen Direktiven unterschiedlich verhält, ist schon – ähm – verwirrend.

      Vermutlich erwartet der Server von web.de nicht unbedingt ein Leerzeichen vor '-->' , wohl aber nach dem Element der Direktive. Mit '#if ' ist er also zufrieden, deshalb muss nach dem Attribut 'expr="foo"' keins mehr stehen.

      Ich liebe solche „should ... unless ...“.

      Live long and prosper,
      Gunnar

      --
      „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)