Adressierungsmethoden
Tom
- programmiertechnik
0 Andreas Korthaus0 Tom
0 Wilhelm Turtschan0 Tom
0 Sven Rautenberg0 Tom0 Der Linke Setzer- cgi
0 fk0 Tom
0 Tom
Hello,
ich habe das gerade eine´n Denkknoten.
Welche Adressierungsmethoden im Apachen fallen Euch ein?
relative Adressierung, klappt eigentlich meistens ../../img/bild.gif
oder Server-absolute Adressierung, klappt nur, wenn man
vernünftig einrichtet und z.B. eine Konstante definiert
für aktive Scripte BASEPATH.'/img/bild.gif
ist wenig sinnvoll auf schlampig eingerichteten Provider-
Umgebungen. (keine change root..)
Was könnte man da nun universelles Programmieren (z.B. in PHP) um das zu kompensieren?
Wenn nun jedes Script am Anfang erstmal feststellt, in welchem Pfad es liegt...
Und dann von dort aus relativ vorgeht...?
Wieviel Räder gibt's denn schon zu dem Thema?
Besonders würde mich eben interessieren, wie man das praktisch löst, dass ja die Verzeichnisse für bestimmte Dateien per Definition festgelegt werden können, aber doch leider nicht absolut.
Brauch da einfach mal ein paar Erfahrungswerte
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi!
relative Adressierung, klappt eigentlich meistens ../../img/bild.gif
oder Server-absolute Adressierung, klappt nur, wenn man
vernünftig einrichtet und z.B. eine Konstante definiert
für aktive Scripte BASEPATH.'/img/bild.gifist wenig sinnvoll auf schlampig eingerichteten Provider-
Umgebungen. (keine change root..)
Ich verwende meist
/img/bild.gif
das geht so lange ohne Probleme, bis man das ganze mal in ein Unterverzeichnis installieren will.
Grüße
Andreas
Hello,
relative Adressierung, klappt eigentlich meistens ../../img/bild.gif
oder Server-absolute Adressierung, klappt nur, wenn man
vernünftig einrichtet und z.B. eine Konstante definiert
für aktive Scripte BASEPATH.'/img/bild.gifist wenig sinnvoll auf schlampig eingerichteten Provider-
Umgebungen. (keine change root..)Ich verwende meist
/img/bild.gif
das geht so lange ohne Probleme, bis man das ganze mal in ein Unterverzeichnis installieren will.
Ja, darum scheidet diee Methose auch aus. Die Kunden sind bereit, die Demo der von ihnen verwendeten Software auf ihren Servern zu installieren. Das bedeutet aber, dass sie das Paket in irgendein Unterverzeichnis kopeieren können müssen und ggf. noch drei bis vier Werte in einer zentralen congi.inc.php ändern würden. Aber mehr auch nicht. Das erste Problem ist ja schon, wo man diese config hinlegt. /etc ist nicht für jeden zugänglich
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi!
Ja, darum scheidet diee Methose auch aus. Die Kunden sind bereit, die Demo der von ihnen verwendeten Software auf ihren Servern zu installieren. Das bedeutet aber, dass sie das Paket in irgendein Unterverzeichnis kopeieren können müssen und ggf. noch drei bis vier Werte in einer zentralen congi.inc.php ändern würden.
Ich verwende für sowas andere Subdomains.
Das erste Problem ist ja schon, wo man diese config hinlegt. /etc ist nicht für jeden zugänglich
irgendwo zu dem Rest der Scripte ;-)
Grüße
Andreas
habe d'ehre
Brauch da einfach mal ein paar Erfahrungswerte
Ich lege fuer Scriptgenerierte Ausgaben die Pfade zu Bildern, externen Texten, PDF usw. immer in einer Config-Datei ab. (relative Pfade)
man liest sich
Wilhelm
Hello,
Brauch da einfach mal ein paar Erfahrungswerte
Ich lege fuer Scriptgenerierte Ausgaben die Pfade zu Bildern, externen Texten, PDF usw. immer in einer Config-Datei ab. (relative Pfade)
Relativ zu was?
Es ist ja möglich, dass ein include-File der einen Pfad benötigt, aus verscheidenen Ebenen eines Projektes aufgerufen wird. Zumindes habe ich eo ein Projekt "geerbt" und nun versuche ich aus den Negatveffekten, die das mit sich bringt, einfach mal einen Fahrplan oder eine genielae Funktion zu machen, die die Position des aktuellen Scriptes im Baum ermittelt und dann dazu relativ positioniert.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin!
oder Server-absolute Adressierung, klappt nur, wenn man
vernünftig einrichtet und z.B. eine Konstante definiert
für aktive Scripte BASEPATH.'/img/bild.gif
DOCUMENT_ROOT existiert.
- Sven Rautenberg
Hello,
oder Server-absolute Adressierung, klappt nur, wenn man
vernünftig einrichtet und z.B. eine Konstante definiert
für aktive Scripte BASEPATH.'/img/bild.gifDOCUMENT_ROOT existiert.
Das ist dann der für die Domain ( den Virtual Host) eingestellte Pfad, also zb:
/var/www/htdocs/
Die URL der Dateien lauter aber z.B:
http://testserver.lan.fli4l/~thomas/test/info.php
^
+-- Das wäre jetzt das "Wurzelverzeicnnis" für
die jeweilige Demo
Und dann gibt es z.B. noch eine Umleitung aus irgendeiner Domain
Redirect /demo http://testserver.lan.fli4l/~thomas/test/
Und nun soll die datei info.php wissen, wo sie ihre Brüder und Schwestern findet.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Und nun soll die datei info.php wissen, wo sie ihre Brüder und Schwestern findet.
Und dann gibt es z.B. noch eine Umleitung aus irgendeiner Domain
Redirect /demo http://testserver.lan.fli4l/~thomas/test/
Und nun soll die datei info.php wissen, wo sie ihre Brüder und Schwestern findet.
rewrite und redirect findet nicht innerhalb des php interpreters statt, sondern vorher auf dem webserver oder nachher auf dem browser.
daher spielt das zur abarbeitung des php-scriptes keine rolle.
Hello,
rewrite und redirect findet nicht innerhalb des php interpreters statt, sondern vorher auf dem webserver oder nachher auf dem browser.
daher spielt das zur abarbeitung des php-scriptes keine rolle.
Aber zusammenpassen muss es trotzdem.
Ich hätte den Fehler vom Redirect ja uch in PHP wieder kompensieren können, oder?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
das Problem lag woanders:
Redirect /clientdemo http://I009.provider.de/~alarm/alarm/client/ # slash ist falsch hier
Redirect /admindemo http://I009.provider.de/~alarm/alarm/admin/ # slash ist falsch hier
hat dann in der relativen Adressierung zu
<!--/home/alarm/public_html/alarm/admin/modules/products/modelle.tmpl.php -->
<!--/~alarm/alarm/admin//modules/products/modelle.php -->
^
|
+---- Hier entstand dann ein Doppelslash, der die relative
Adressierung der Bilder (../../../images/blah/blubb.jpg)
durcheinander gebracht hat.
Ich habe es erst gefunden, nachdem ich die beiden Zeilen:
<!--<?php echo __FILE__; ?> -->
<!--<?php echo $_SERVER['PHP_SELF']; ?> -->
ins Script eingebaut hatte. Da das ganze Ding neben einer register_globals==on-Wüste auch auch ein JavaScript-Grab ist, wurde keine Adressleiste und keine Statuszeile angezeigt. Sowas zu debuggen ist ein Graus.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom