[mod_rewrite] DOCUMENT_ROOT manipulieren

budderstulle

Well-known member
ID: 58316
L
2 Mai 2006
434
73
Hi,

ich hab folgendes Problem. Und zwar möchte ich DOCUMENT_ROOT über mod-rewrite ändern. Hier erstmal der Hintergrund: Ich hab ein Script laufen auf meiner Domain, beispielsweise also: www.domain.de
Das Script das dort läuft verwendet Pfadangaben mit $_SERVER["DOCUMENT_ROOT"]. Nun möchte ich das Script aber auf www.domain.de/test/ laufen lassen, durch das DOCUMENT_ROOT ist es aber nicht möglich.

Nun hab ich gelesen, dass man per mod-rewrite DOCUMENT_ROOT verändern kann und das geht sowohl über die httpd.conf, sowie über .htaccess. Da ich nicht an die httpd.conf rankomme, müsste ich es über .htaccess machen. Weiß einer wie das funktioniert ?
Es wäre sehr geil, wenn ihr eine Lösung habt, weil dann kann ich es mir sparen ca. 1000 Dateien zu bearbeiten ;)


MfG budderstulle
 
Ich glaube nicht das man den $_SERVER["DOCUMENT_ROOT"] über .htaccess ändern kann 8O imho geht das NUR in der httpd.conf
 
also per Virtual Host geht es auf jeden fall, aber ich weiß nicht genau, ob auch mit mod_rewrite, ich meine davon gelesen zu haben :think:
 
neija du könntest ja per htacces jede URL nach dem muster example.com/* nach example.com/test/* weiterleiten
 
neija du könntest ja per htacces jede URL nach dem muster example.com/* nach example.com/test/* weiterleiten

Und was hat $_SERVER['DOCUMENT_ROOT'] mit der URL zu tun? Mit mod_rewrite kann man da nix machen, da hilft nur Script anpassen. (Oder ein passender vhost, tipp bei manchen Hostern kann man Subdomains auf Ordner legen)
 
Und was hat $_SERVER['DOCUMENT_ROOT'] mit der URL zu tun? Mit mod_rewrite kann man da nix machen, da hilft nur Script anpassen. (Oder ein passender vhost, tipp bei manchen Hostern kann man Subdomains auf Ordner legen)

neija ich hatte das so verstanden, dass links anhand des document-root erstellt werden und er eben aber links auf das unterverzeichnis machen will, so eben die andere lösung mit der htaccess-weiterleitung
 
Falls es, wie ichs verstehe, für ein Testweb ist, sollte es eigentlich ausreichen, eine neue Variable zuzuweisen (also z.b. in ner Datei, die überall includet wird)

PHP:
$_SERVER["DOCUMENT_ROOT"]= '/var/www/webx/html/testweb';

hab`s nich ausprobiert ^^

smile
 
Es ist ziemlich blöd $_SERVER["DOCUMENT_ROOT"] direkt im Skript zu verwenden. Man definiert in der Konfig eine extra Variable mit $_SERVER["DOCUMENT_ROOT"] oder man benutzt die Konstante __FILE__ bzw. basename(__FILE__).
 
Falls es, wie ichs verstehe, für ein Testweb ist, sollte es eigentlich ausreichen, eine neue Variable zuzuweisen (also z.b. in ner Datei, die überall includet wird)

PHP:
$_SERVER["DOCUMENT_ROOT"]= '/var/www/webx/html/testweb';
hab`s nich ausprobiert ^^

smile

a) weiss ich nciht, ob man die festen vars. einfach ändern kann. also ob die werte übernommen werden
b) macht man das nich:mrgreen:
c) wie wäre es, wenn du anstatt $_SERVER["DOCUMENT_ROOT"] einfach mit ner neuen variable arbeitest und in ner config oso

diese einfach definierst:

beiospiel $blablubb = $_SERVER["DOCUMENT_ROOT"];

wenn du das nun ändern willst siehe smiles post, dann einfach $blablubb = "..."

haut mich, steinigt mich, oder gebt mir feedback, ob ich vollkommen daneben gedacht hab :-D
 
c) wie wäre es, wenn du anstatt $_SERVER["DOCUMENT_ROOT"] einfach mit ner neuen variable arbeitest und in ner config oso

diese einfach definierst:

beiospiel $blablubb = $_SERVER["DOCUMENT_ROOT"];

dafür gibt es Konstanten und keine Variablen ;) denn die Variable könnte wieder überschrieben werden, und es gibt Probleme mit dem Scope der Variable, falls man sie in Funktionen nutzen will, denn global $blablubb ist Mist.