z.T. falsche Pfade nach mod_rewrite
Christopher
- php
Hallo!
Ich habe ein Problem mit meiner Seite nach mod_rewrite.
Die Adressen sind etwa wie folgt:
www.beispiel.com/modul/aktion/id
Im Verzeichnis /modul existiert lediglich eine htaccess, die das ganze zu ../modul.php?pfad=aktion/id leitet. (Eben mit der RewriteEngine.)
Jetzt ein Beispielfall, um kurz das Problem zu erklären:
Ich rufe www.beispiel.com/modul/neu auf.
Es wird die modul.php?pfad=neu im Root aufgerufen.
Dort prüft diese, in welchem (Unter-)Verzeichnis sie ist.
(Nur der Vollständigkeit halber:)
[code=php]$basis_i = substr_count($PHP_SELF,"/") - 1; while($basis_j < $basis_i) { $root .= "../"; $basis_j++; } require ($root."inc/includes.inc");[/code]
Dieser PHP Include sowie alle weiteren funktionieren aus der modul.php tadellos - d.h. das $root scheint zu stimmen, da z.B. www.beispiel.com/inc/includes.inc ja richtig eingebunden wurde.
Alle Hyperlinks jedoch und z.B. Bildpfade, da hängt plötzlich ein "modul" drinnen, z.B. www.beispiel.com/modul/grafik/grafik.jpg anstatt www.beispiel.com/grafik/grafik.jpg, obwohl diese auch mit (in dem Fall) $root."grafik/grafik.jpg" angegeben sind.
Weiß jemand wieso? Danke schonmal!
echo $begrüßung;
$basis_i = substr_count($PHP_SELF,"/") - 1; while($basis_j < $basis_i) { $root .= "../"; $basis_j++; } require ($root."inc/includes.inc");
In diesem Code-Stück (das sich einfacher lesen ließe, wenn du nicht alles in eine Zeile geschrieben hättest) wird auf einige Variablen lesend zugegriffen, deren Inhalt du nicht bekanntgibst. Dein Prpblem kann ich somit nicht nachstellen. Wenn keine explizite Initialisierung stattfand, wäre es eine gute Idee, diese noch einzubauen. Außerdem sieht es so aus, als ob du dich auf register_globals=On verlässt. Das sollte man nicht mehr tun. Verwende die Werte aus den superglobalen Arrays, $_SERVER in deinem Fall.
[...] d.h. das $root scheint zu stimmen [...]
Warum prüfst du den Inhalt von root nicht durch eine Kontrollausgabe? echo $root oder auch var_dump($root) sollte Klarheit bringen.
Weiß jemand wieso? Danke schonmal!
Du wirst dem Problem mit Kontrollausgaben der beteiligten Variablen auf die Spur kommen, dessen bin ich mir sicher. :-)
echo "$verabschiedung $name";
hi,
Alle Hyperlinks jedoch und z.B. Bildpfade, da hängt plötzlich ein "modul" drinnen, z.B. www.beispiel.com/modul/grafik/grafik.jpg anstatt www.beispiel.com/grafik/grafik.jpg,
Weiß jemand wieso?
Wer setzt relative Pfade, die in einem Dokument auf externe Ressourcen verweisen, zusammen? Der Client.
Woraus setzt er sie zusammen? Aus dem relativen Pfad, den du angegeben hast, und der Adresse, unter der er das Dokument abgerufen hat.
obwohl diese auch mit (in dem Fall) $root."grafik/grafik.jpg" angegeben sind.
Und was kam als HTML-Code heraus?
gruß,
wahsaga
Vielen Dank für eure Antworten!
Ich glaube ich habe einfach nicht drangedacht, dass die Adresse zu Bildern etc. ja vom Client und nicht von PHP zusammengesetzt wird.
Falls es nicht klappt, werde ich mich nochmal melden. Aber ich denke das sollte jetzt gehn.
Bis dahin schonmal ein großes DANKE euch beiden.