etherius Geschrieben 27. September 2007 Geschrieben 27. September 2007 Hallo! Wir haben firmenintern ein kleines eigenes framework geschrieben, dass bei unseren Kunden auch auf Hosting Paketen eingesetzt wird. Damit auch dort nicht alles auf dem Root-Verzeichnis, sprich von außen zugänglich liegt (templates, etc.) haben wir jetzt einen public ordner eingeführt, auf den sämtliche Anfragen umgeleitet werden, wo also alle öffentlichen Daten liegen (Bilder, index.php usw.). Das Ganze funktioniert allerdings noch nich perfekt. Greife ich mit www.domain.de/ordner/ auf einen ordner zu funktioniert alles wunderbar. Lasse ich allerdings den / weg, www.domain.de/ordner wird daraus in der adresszeile www.domain.de/public/ordner/ Weiß jemand woran das liegt? Code: RewriteEngine On RewriteRule ^(.*)\.html$ /index.php/$1 [L] RewriteRule ^/index.html$ / [R=301,QSA,L] # public Ordner RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(.*)$ /public/$1 [L] gruß Jan Zitieren
geloescht_JesterDay Geschrieben 27. September 2007 Geschrieben 27. September 2007 Greife ich mit www.domain.de/ordner/ auf einen ordner zu funktioniert alles wunderbar. Lasse ich allerdings den / weg, www.domain.de/ordner wird daraus in der adresszeile www.domain.de/public/ordner/ Weiß jemand woran das liegt? Ist das nicht immer so, wenn du auf einen Ordner zugreifst? Egal mit oder ohne mod_rewrite. Zitieren
etherius Geschrieben 27. September 2007 Autor Geschrieben 27. September 2007 Also ich würd es nicht unbedingt als normal bezeichenen dass da auf einmal public vor steht ... Zitieren
Amstelchen Geschrieben 27. September 2007 Geschrieben 27. September 2007 Also ich würd es nicht unbedingt als normal bezeichenen dass da auf einmal public vor steht ... steht aber genau so in der RewriteCond: RewriteCond %{REQUEST_URI} !^/public/ alles was nicht /public/ ist, wird /public/<und dann dein ordner> s'Amstel Zitieren
etherius Geschrieben 27. September 2007 Autor Geschrieben 27. September 2007 steht aber genau so in der RewriteCond: alles was nicht /public/ ist, wird /public/<und dann dein ordner> s'Amstel Jojo, allerdings steht da nichts von einem redirect drin, das ist eine rule zum internen umschreiben, und eben das funktioniert in dem Fall nicht wo der / am Ende nicht angegeben ist ... Zitieren
geloescht_JesterDay Geschrieben 27. September 2007 Geschrieben 27. September 2007 Jojo, allerdings steht da nichts von einem redirect drin ... Wird da überhaupt ein redirect ausgeführt? LiveHTTPHeaders + Firefox zeigen dir, was der Server da alles tut (bzw. an den Client schickt). Zitieren
etherius Geschrieben 28. September 2007 Autor Geschrieben 28. September 2007 Es steht auf jeden Fall kein 301 drin ... alles sehr merkwürdig ... Zitieren
Amstelchen Geschrieben 28. September 2007 Geschrieben 28. September 2007 dreh mal das RewriteLog auf und stell RewriteLogLevel auf 9 s'Amstel Zitieren
etherius Geschrieben 28. September 2007 Autor Geschrieben 28. September 2007 127.0.0.1 - - [28/Sep/2007:16:06:07 +0200] [handy/sid#e24d98][rid#f05dd0/initial] (4) [perdir D:/workspace/handy/] RewriteCond: input='/forum' pattern='!^/public/' => matched 127.0.0.1 - - [28/Sep/2007:16:06:07 +0200] [handy/sid#e24d98][rid#f05dd0/initial] (2) [perdir D:/workspace/handy/] rewrite 'forum' -> '/public/forum' 127.0.0.1 - - [28/Sep/2007:16:06:07 +0200] [handy/sid#e24d98][rid#f05dd0/initial] (1) [perdir D:/workspace/handy/] internal redirect with /public/forum [INTERNAL REDIRECT] Zitieren
etreu Geschrieben 28. September 2007 Geschrieben 28. September 2007 Ich würde sagen, dass die Regel das macht, was sie soll. Der Unterschied zwischen 'ordner' und 'ordner/' kommt vielleicht durch den DirectoryIndex. <Vermutung> Möglicherweise interpretiert der Apache den Slash am Ende so, dass der DirectoryIndex-Direktive Anwendung findet. Ist keiner vorhanden, dann wird davon ausgegangen, dass es eine Datei ist. Diese wird dann entsprechend der Regel umgemapt. Probier es mal ohne DirectoryIndex. Würde mich mal interessieren. </Vermutung> Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.