WauWau: [Apache] Ganz bestimmte Seite "durch PHP schleusen"

Hallo,

Man muss sich mein Problem so vorstellen: Ich habe eine ganz bestimmte Datei, es ist ganz genau die Datei "index.html" von einem eingerichteten Virtual Host, und bei dieser Datei möchte ich gerne dynamisch was einbinden. Dafür möchte ich sie als "CGI-PROGRAMM" benutzen, also so, wie es bei allen .htm/.html-Dateien im folgenden Beispiel geschieht:
    AddHandler add-footer .html .htm
    Action add-footer /server/ressourcen/special/footer.php
Mit den CGI-Umgebungsvariablen kann ich dann z.B. rausbekommen, welche Datei aufgerufen wurde, und dann dort z.B. einen <script> an die richtige stelle zu wurschteln, ist kein Problem mehr.

Meine Frage: Wie kann ich es erreichen, dass er diese eine Datei so benutzt? Geht das nicht mit <file> ? Ich bekomms auf jeden Fall net hin.

Vielen Dank,

WauWau

  1. hi,

    Ich habe eine ganz bestimmte Datei, es ist ganz genau die Datei "index.html" von einem eingerichteten Virtual Host, und bei dieser Datei möchte ich gerne dynamisch was einbinden. Dafür möchte ich sie als "CGI-PROGRAMM" benutzen, also so, wie es bei allen .htm/.html-Dateien im folgenden Beispiel geschieht:
        AddHandler add-footer .html .htm
        Action add-footer /server/ressourcen/special/footer.php

    warum benennst du die seite dann nicht einfach um, z.b. in index.cgi, und lässt dann alle seiten parsen, die auf .cgi enden?

    gruss,
    wahsaga

    1. Hallo,

      warum benennst du die seite dann nicht einfach um, z.b. in index.cgi, und lässt dann alle seiten parsen, die auf .cgi enden?

      Weil ich die Datei selber nicht bearbeiten will. Aber ich habe das Problem inzwischen gelöst - hier meine Lösung:

      <VirtualHost *>
           DocumentRoot "E:/Heribert/Homepage (neues Design Version 4)/"
           ServerName www.technikmuseum-test.de

      <Files index.html>
             AddHandler myadv .html
           </Files>
           Action myadv /MyAd.php

      Alias /berti/ "E:\Heribert"
      </VirtualHost>

      Die datei MyAd:

      <?
        if($_SERVER["SCRIPT_NAME"] != $_SERVER["REQUEST_URI"])
         {
           $lines = file ($_SERVER["PATH_TRANSLATED"]);

      // Durchgehen des Arrays und Anzeigen des HTML Source inkl. Zeilennummern
          foreach ($lines as $linie) {
            echo $linie;
            if(preg_match("/<body(.*)>/i", $linie)) {
              ?>
              <!-- automatisch eingebunden per PHP -->
              <script language="JavaScript">
              <!--
                 var bla, left, top, w, h;
                 w = screen.width*0.8; h = screen.height*0.8;
                 left = (screen.width-w)/2; top = (screen.height-h)/2;
                 bla = window.open("MyAd.php", "myad", "width="+w+",height="+h+",left="+left+",top="+top);
                 bla.blur();
                 setTimeout("bla.focus()", 1000);
              // -->
              </script><? print "\n";
            }
          }
         }
        else { // Datei wurde richtig aufgerufen!
      ?>
      und hier dann die "werbung"
      <?
       }
      ?>

      so einfach war's ;-)

      Wauwau