Hallo,
ich bin absoluter Anfänger in Sachen Perl/CGI und hoffe, das mir hier jemand weiterhelfen kann.
Ich habe eine Webseite, die unter zwei verschiedenen Domains erreichbar ist (z. B. www.test1.de und www.test2.de). Die gesamte Funktion der Webseite ist mit einem CGI-Skript realisiert.
Nun möchte ich gerne folgendes realisieren: Wenn der Benutzer auf www.test1.de geht, soll im Browser der Text "Willkommen auf Test1.de", auf www.test2.de entsprechend "Willkommen auf Test2.de" stehen.
Dazu hatte ich mir gedacht, im CGI-Skript einfach die URL des Browsers auszulesen, und per if-Abfrage dann den entsprechenden Text an den notwendigen Stellen auszugeben.
Aber wie kann ich das in Perl/CGI realisieren?
IN PHP würde ich einfach die Variable $_SERVER['DOCUMENT_ROOT'] auslesen. Gibt es so etwas ähnliches auch in Perl/CGI?
Viele Grüße,
Sebastian
User since
2006-07-10
2611
Artikel
BenutzerIn
my $string=$ENV{DOCUMENT_ROOT};
Das sollte auf jedem HTTP-Server zur Verfügung stehen.
User since
2003-08-21
2614
Artikel
ModeratorIn
Hm, ich weiss nicht, ob DOCUMENT_ROOT da hilft. Da steht doch eigentlich nur der lokale Pfad zum public_html-Verzeichnis drin. Was Du suchst, steht in
$ENV{HTTP_HOST}
User since
2006-07-10
2611
Artikel
BenutzerIn
Stimmt schon ambesten sollte man "SERVER_NAME" aus %ENV auslesen. "HTTP_HOST" könnte man auch verwenden. Das muß der Client dann aber mitliefern, ob das immer der Fall ist weiß ich nicht.
User since
2003-08-21
2614
Artikel
ModeratorIn
Stimmt, SERVER_NAME ist wohl das Beste.
User since
2005-04-14
684
Artikel
BenutzerIn
Hallo
Hairsplitting...
Aber in der Praxis bewährt ist:
my $server_name = $ENV{'HTTP_HOST'} || $ENV{'SERVER_NAME'} || '';
Gruß
Kristian
User since
2003-11-28
3645
Artikel
ModeratorIn
[quote=topeg,02.06.2007, 11:42]Stimmt schon ambesten sollte man "SERVER_NAME" aus %ENV auslesen. "HTTP_HOST" könnte man auch verwenden. Das muß der Client dann aber mitliefern, ob das immer der Fall ist weiß ich nicht.[/quote]
Da der Host-Header bei HTTP/1.1 Pflicht ist und wahrscheinlich so gut wie alle Clients HTTP/1.1 sprechen, wird der Header da sein. Ansonsten würden Sachen wie NameVirtualHost gar nicht funktionieren.
User since
2003-11-28
3645
Artikel
ModeratorIn
Oder vielleicht besser ausgedrückt: vielleicht sprechen noch einige Clients nur HTTP/1.0, aber den Host-Header dürften so gut wie alle schicken.
User since
2005-04-14
684
Artikel
BenutzerIn
Hallo
Oder anders gesagt es gibt in Köln einen Hoster, der es anders sieht und "Alias-Domains" verkauft.
Speziell für diesen Hoster kenne ich einige workarrounds, da die Kommunakition (mit dem Hoster) nichts bringt.
Ich fühle mich gerade leicht angepisst..
Es kann doch wohl nicht sein, daß ich die Erfahrung der letzten Jahre zum Besten gebe und immer nur Störgeräusche entstehen.
Ich möchte darum bitten mir zuzuhören, wenn ich etwas sage.
Es ist kein Quatsch und keine Vermutung.
Es ist einfach nur die Realität von heute.
Grummml
Kristian\n\n
<!--EDIT|kristian|1180902218-->