Hallo zusammen,
wie kann ich in einem Perl-Script die „Basis-Adresse“ eines Webs ermitteln, egal von welchem Web und aus welchem Unterverzeichnis eines Webs das Perl-Script aufgerufen wird, so dass ich im Perl-Script immer auf typische Unterverzeichnesse des „rufenden“ Webs (hier „http://myweb/web1/images“) referenzieren kann.
Also z.B.:
$aktuelleBasisAdresse = ???????????
print "<td><IMG src='$aktuelleBasisAdresse/images/grafikX.gif'></TD>\n";
Erläuterungen:
Ich habe zwei unterschiedliche Webs, die in den lokalen Verzeichnissen
„C:\public\web1“ und „C:\public\web2“ liegen.
Direkt unter „C:\public“ liegt eine „index.html“ von der aus web1 bzw. web2 ausgewählt werden können.
Auf das Verzeichnis „C:\public“ wird in der „htppd.conf“ mit dem virtuellen Namen „myweb“ referenziert.
Ich habe ein Perl-Sripct, das von beiden Webs (web1, web2) aus aufgerufen werden kann. Es bereitet u.a. eine Tabelle mit Grafiken aus den jeweiligen Webs „http://myWeb/web1/images“ und „http://myWeb/web2/images“ auf.
Bis jetzt habe ich keine andere Möglichkeit gefunden, als im Perl-Script festverdrahtet die entsprechende Adressierung anzugeben:
print "<td><IMG src='http://myWeb/web1/images/grafikX.gif'></TD>\n"; bzw.
print "<td><IMG src='http://myWeb/web2/images/grafikX.gif'></TD>\n";
Ich habe keine Umgebungsvariable gefunden, aus der ich zuverlässig http://myweb/web1 bzw. http://myweb/web2 ermitteln kann.
Ruft z.B. eine html Datei aus dem Verzeichnis http://myweb/web1/Unterverzeichnis das Perl-Script auf, so steht z.B. in HTTP_REFERER http://myweb/web1/Unterverzeichnis/dateiname.html.
Ruft eine html Datei aus dem Verzeichnis http://myweb/web2/ das Perl-Script auf, so steht in HTTP_REFERER http://myweb/web2/name.hmtl.
Ich möchte ungern implizite Annahmen kodieren: z.B. mit Zeichenkettenoperatoren das vierte „/“ ermitteln und dann mit Substring den vorderen Teil ausschneiden. Das würde sofort schief gehen, sobald ich ein drittes Web in einem Verzeichnis C:\public\Zwischenverzeichnis\web3 anlegen würde.
Vielen Dank schonmal an alle, dies geschafft haben, sich den ganzen Text durchzulesen. Und ein doppeltes Dankeschön an denjenigen, der 'ne Lösung für mich hat!
Ciao
atmaseva