Seite 1 von 1

Contentserving mit FastCGI

Verfasst: 06.02.2010 18:30
von kartoffelkopf
Hi,

irgendwie befinde ich mich gerade in einer Schleife und vielleicht kennt jemand den Ausweg:
Alle HTML-Seiten auf einem Webserver sollen ueber einen Frame ausgeliefert werden. Die URL wird dabei nicht veraendert.

Als Loesungsansatz habe ich mod_rewrite gewaehlt, welches ein fcgi aufruft:

Code: Alles auswählen

RewriteEngine on
RewriteRule ^/(.+)(htm|html) /srv/www/cgi-bin/rewrite.fpl?$1$2
rewrite.fpl:

Code: Alles auswählen

#!/usr/bin/perl
use strict;
use FCGI;
my $url;

while (FCGI::accept() >= 0)
{
$| = 1;
$url = $ENV{'QUERY_STRING'};
print "Content-type: text/html\n";
print "\n";
print "<html>\n";
print "<frameset rows=\"150,*\" border=\"0\" frameborder=\"0\" framespacing=\"0\" framecolor=\"#00000
0\">\n"
;
print "<frame src=\"/er/error/ads.html\" name=\"theads\">\n";
print "<frame src=\"".$url."\" name=\"thepage\">\n";
print " </frameset>\n";
print "</html>\n";
##EOF##
 }
Natuerlich lande ich so in einem Rewriteloop, weil die angeforderte $url an rewrite.fpl uebergeben wird, worin die Frameseite dann wieder an den Webserver uebergeben wird und die dann wieder an das rewrite.fpl. Mir will aber keine Condition einfallen, die das verhindert. Experimente mit NS (nosubrequest) oder das Setzen von Enviroment-Variablen waren auch nicht sehr erfolgreich. rewrite.fpl soll auch nur intern aufgerufen werden und nicht extern erscheinen, weswegen ich mich mit nosubrequest auf dem richtigen Weg waehnte. Oder geht das nicht bei FastCGI?

:(