Ferdinand: Wie Document_root als URL auslesen?

Hallo,

auf einem localhost (Apache/Foxserver) entwickle ich grade
eine kleine Applikation für meinen Kunden.

Damit alles richtig läuft müsste ich das Document_Root
auslesen, das mache ich mit ..getenv("DOCUMENt_ROOT").

Problem: der Befehl gibt den Pfad als

c:/programme/foxserv/www

zurück, und nicht als URL.

Ich bräuchte ein http://localhost/admin/www als Ergebnis,
damit ich das Weiterverarbeiten kann und es beim Portieren
auf einen anderen Server problemlos läuft.

Hat jemand eine Idee, wie ich das komplette Basedir auch
auf dem localhost als URL zurückbekomme?

Danke

Ferdinand

  1. Hallo,

    Damit alles richtig läuft müsste ich das Document_Root
    auslesen, das mache ich mit ..getenv("DOCUMENt_ROOT").

    Problem: der Befehl gibt den Pfad als
    c:/programme/foxserv/www
    zurück, und nicht als URL.

    Klar, die Document root ist auch ein Filesystem-Pfad.

    Ich bräuchte ein http://localhost/admin/www als Ergebnis,

    Was jetzt?
    die Document root hat als URL-Gegenstück http://servername/
    nicht http://servername/admin/www
    (wobei in Deinem Fall servername = localhost zu setzen wäre).

    Hat jemand eine Idee, wie ich das komplette Basedir auch
    auf dem localhost als URL zurückbekomme?

    http://localhost/

    Andreas

    1. Danke Romy, danke Andreas,

      Andreas, habe mich wohl unklar ausgedrückt.

      Klaro ist Document_Root auch ein Filesystem-Pfad.

      Ich meinte ich bräuchte einen Befehl der sowohl auf dem
      Localhost als auch auf einem anderen Server z.B. unter
      http://www.meinedomain.de die Document_root "NICHT" als
      Filesystem-Pfad ausgibt.

      In meinem Beispiel wäre die Document_Root auf meinem localhost
      momentan "http://localhost/admin/www".

      Das wollte ich über ein Skript zurückliefern.

      Dank und gruss

      Ferdinand

      Hallo,

      Damit alles richtig läuft müsste ich das Document_Root
      auslesen, das mache ich mit ..getenv("DOCUMENt_ROOT").

      Problem: der Befehl gibt den Pfad als
      c:/programme/foxserv/www
      zurück, und nicht als URL.

      Klar, die Document root ist auch ein Filesystem-Pfad.

      Ich bräuchte ein http://localhost/admin/www als Ergebnis,

      Was jetzt?
      die Document root hat als URL-Gegenstück http://servername/
      nicht http://servername/admin/www
      (wobei in Deinem Fall servername = localhost zu setzen wäre).

      Hat jemand eine Idee, wie ich das komplette Basedir auch
      auf dem localhost als URL zurückbekomme?

      http://localhost/

      Andreas

  2. Hallo,

    hallo

    Damit alles richtig läuft müsste ich das Document_Root
    auslesen, das mache ich mit ..getenv("DOCUMENt_ROOT").

    Problem: der Befehl gibt den Pfad als

    c:/programme/foxserv/www

    guck dir mal die $HTTP_SERVER_VARS an ob da was für Dich dabei ist
    ich denke $HTTP_SERVER_VARS["HTTP_REFERER"] sollte dein Freund sein

    Danke

    Ferdinand

    romy

    1. Moin!

      guck dir mal die $HTTP_SERVER_VARS an ob da was für Dich dabei ist
      ich denke $HTTP_SERVER_VARS["HTTP_REFERER"] sollte dein Freund sein

      HTTP_REFERER ist dein _Feind_. Diese Angabe _kann_ richtig sein, sie kann gefälscht sein, sie kann fehlen. Insbesondere bezieht sie sich auf die Seite, die _vorher_ besucht wurde - und wenn man per Link von einem anderen Server kommt, dann ist die Serveradresse definitiv nicht das, was gewünscht ist.

      Aber der andere Vorschlag ist gut. Die Server-Adresse sollte dort irgendwo auftauchen und kann dann passend zusammengesetzt werden, wobei zugriffsmäßig gilt:
      DOCUMENT_ROOT = SERVER_URL

      Insbesondere möchte ich daran erinnern, dass die Notwendigkeit für die Ausgabe der aktuellen Serveradresse im HTML selbst _nicht_ besteht. Man kann (was zur Portierung auf andere Systeme sinnvoll ist) Links etc. auch einfach relativ bzw. ohne Serveradresse absolut angeben. Und für Skripte ist eigentlich nur DOCUMENT_ROOT interessant, weil man dort häufiger mal Dateien ins Dateisystem schreiben will. ;)

      - Sven Rautenberg