Contentserving mit FastCGI

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

Contentserving mit FastCGI

Beitragvon kartoffelkopf » 06.02.2010 18:30

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?

:(
kartoffelkopf
.
.
 
Beiträge: 59
Registriert: 06.02.2010 15:03

Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron