atmaseva: In Perl "BasisAdresses" des aufrufenden Webs ermitteln

Beitrag lesen

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