Wie Document_root als URL auslesen?
Ferdinand
- php
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
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
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
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
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