mod_rewrite hilfe

PH

Legendäres Mitglied
Ich bin bisher noch ohne mod_rewrite ausgekommen und konnte stattdessen alle Probleme mit dem <base> Tag lösen.

Jedoch wurde dieser deprecated uns mehr und mehr Fehler tauchen jetzt in meinem Error_log auf, verursacht durch Browser die meine <base> tags ignorieren. Ich muss also auf etwas anderes umsteigen - ich dachte an mod_rewrite.

Was ich bisher mache:

Ein Postnuke-Framework läuft unter http root: / mit <base href=http:meinedomain/>
Dann kommt ein Punkt an dem ich ein Script in einem Unterverzeichnis aufrufe: meinedomain/script/prog1.php
In diesem script habe ich ein <base href=meinedomain/script/>, so dass alle URLs die danach kommen, relativ zu meinedomain/script/ aufgerufen werden.
Wenn ich mit meinen scripts in /script/ fertig bin, gibt das letzte php-script in /script/ nochmals ein <base href=meinedomain/> aus, um wieder zurück ins http root zu kommen, und den Rest von Postnuke auszuführen.

Nun möchte ich diese <base> tags loswerden, und vielleicht durch mod_rewrite Funktionen ersetzen - oder gibt es andere Lösungen?

Aus technischen Gründen kann ich nichts an den URLs in /script/ ändern.
 
Du könntest z. B. dein include path erweitern:

$path='./script/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

editiert: Wenn das systemübereifend Linux, Windows) funtkionieren soll, muss man glaube ich die Backslashes für Windows \\ escapen, da Linux mit Schrägstrichen nichts anfangen kann.

Gruss

Bernd R. Rickert
 
Für die Ersetzung des <Base href>
habe ich sonst nur in der Serverkonfiguration:

AddHandler imap-file .ext
base http://www.example.net/folder
Das Forum stellt example.net immer als link dar
sad.gif
auch wenn's keiner ist.

gefunden.

Ob man eine .htaccess dafür einsetzen kann, um ein <base href> -tag zu imitieren, weiss ich nicht.

Gruss

Bernd R. Rickert
 
Danke für die Hinweise.
Ich weiss nicht so recht, ob ich sie auf meinen fall anwenden kann.

Hier nochmal was passiert:

CODE Sagen wir ich rufe die datei http://meinedomain/script/prog1.php auf.

prog1.php macht folgendes:

chdir(../); (wechselt das active php verzeichnis auf http://meinedomain/ )

base = http://meinedomain/
postnuke initialisierung + seitenaufbau, header

chdir(/script/);

hier mein php code

chdir(../);

footer von postnuke


Das problem dabei ist, dass wenn ich nicht <base> auf http://meinedomain/ setze, dass dann während der Ausführung am Anfang alle img Pfade noch mit http://meinedomain/script/ anfangen, und somit "broken" sind.

Aber mod_rewrite scheint nur auf den http-request einzugehen. Wie ist das mit den php-pfaden?
 
Zurück
Oben