#1
|
||||
|
||||
![]() Is ganz simpel, meine Frage, und ich stell sie hier nur, da ich via Google keine Antwort drauf fand.
![]() Wie kann ich in einem .htaccess File auf eine übergeordnete Ebene verweisen. Konkret hab ich ein .htacces File in einem Unterordner, die ErrorDocuments aber eine Ebene höher platziert und nun will ich (natürlich relativ und nicht absolut) darauf verweisen. ErrorDocument 404 ../error404.htm ErrorDocument 404 /../error404.htm Diese beiden Varianten gehen leider ned. ![]() ~f |
#2
|
|||
|
|||
Hm wenn ich mich nicht täusch... Ich denke man muss die Pfade absolut angeben.
|
#3
|
||||
|
||||
Zitat:
ErrorDocument 404 /error404.htm verweist ja schlesslich auch relativ auf die Datei und so gibt's keinerlei Probs. ![]() ~f |
#4
|
|||
|
|||
hm ja klar aber da ist ja die datei auf der selben ebene, äh ich mein im selben Verzeichnis.
|
#5
|
||||
|
||||
Is doch aber unlogisch, dass man relativ auf einen Unter- oder denselben Ordner verweisen kann aber nicht auf einen Ordner höher.
Das will mir einfach ned in den Kopf. Und mit expliziten URL's arbeit ich so ungern. ![]() ~f |
#6
|
||||
|
||||
Edit beachten! (p.p.s)
Und bei 401er Fehlern, falls du da auch eigene Seiten willst, sind auch nur relative Pfade erlaubt...
ich wollt vorhin mal auf meinem lokalen apache etwas rumprobieren, aber bei mir hab ich nur meine eigene Fehlermeldung bekommen, wenn ichs absolut eingegeben hab, selbst wenn das ganze im gleiche Ordner war... sprich: mit "ErrorDocument 404 http://localhost/irgendwas/error404.htm" gings, mit "ErrorDocument 404 /error404.htm" aber nicht... und ja, .htaccess und die error4.htm waren im selben Ordner, und ja, ich hab versucht eine datei in diesem ordner zu öffnen, die es gar nicht gibt ![]() Nur mit Opera hat er mir unter den Standart 404er Fehler noch den Satz geschrieben "Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request." P.S.: Achja, ich weiß ja nciht, mit welchem Browser tu da s getestet hast, aber als ich vorhin ein bisschen rumgeguggt hab ist mir aufgefallen, dass mehrere das problem hatten, dass sie nur dachten es würde nicht funktioneren, weil sie den IE verwendet haben - in anderen Browsern lief es aber ![]() Verstehen tu ichs trotzdem nicht, was ich falsch gemacht hab... nach diversen Beschreibungen im inet sollte das funzen... leider hab ich in keiner davon ein Wort gefunden ob das auch für höhere Ebenen gilt... (oder kanns daran liegen, dass meine apache unter windows läuft?) Vielleicht schaff ichs in den nächsten Tagen das ganze online aufm webspace zu testen und ein bisschen rumzuprobieren... ich glaub jedenfalls, dass ich mir da auch eigene Fehlerseiten erstellen kann, muss nochmal nachguggen... aber zeitlich kann ich nciht sagen, wann ichs hinbekomm... ![]() P.P.S.: Hmm,da ich weiß, das ich in den nächsten Tagen nicht dazu gekommen wäre musste ich es doch gleich ausprobieren ![]() Konkret bei mir: Ich hat die error404.htm + .htaccess (also beide!) im Ordner d:\programme\wamp\homepages\errorpages\error Und hab daher in die hatacces geschireben: "ErrorDocument 404 /error404.htm" Das ist aber falsch! Richtig muss es lauten: "ErrorDocument 404 /errorpages/error/error404.htm" (Da mein html root Verzeichnis der Ordner "homepages" ist). Und wenn ich deinen Text richtig verstanden hab, hast du den relativen Pfad auch auf den Ordner mit der .htaacces bezogen, oder? Andernfalls stellt sich das Problem ja gar nicht... des heißt doch, wenn ich auf ne Datei unterhalb des root ordner zugreifen will *ausprobier* so ahb die error4.htm in den Ordner "Wamp" gesetzt und den relativen Pfad "/../error404.htm" probiert... klappt nicht... opera liefer noch die info, dass es dadurch nen 400 - Bad Request error gab... glaub auch nicht, dass man dagegen irgendwie was tun kann... Naja, wer weiß, ich hoffe, dass ich dir helfen konnte und du das gleiche prob wie ich oben hattest ... falls du allerdings das machen wolltest, was ich grad unten noch ausprobiert hab wünsch ich dir weiterhin viel Erfolg beim Suchen einer Lösung! ![]() CU Klaus Geändert von klaus52 (04-01-2004 um 01:44 Uhr). |
#7
|
||||
|
||||
Zitat:
Eine Pfadangabe mit NUR nem (Slash) / vornedran ist bezogen auf "DOCUMENT_ROOT". (Also absolut) Eine Pfadangabe mit ./ ist bezogen auf "THIS_DIR" Eine Pfadangabe ohne besondere Kennzeichnung ist ebenfalls bezogen auf "THIS_DIR" Und eine Pafdangabe mit ../ is bezogen auf "PARENT_DIR" (ausser, du bist schon im document root) Wenn du jemanden ne Datei ausserhalb des Document_roots schicken willst, musst du ihm per PHP nen Header schicken, dass jetzt "text/html" kommt und mit nem speziellen Befehl die datei ausserhalb des Webspaces schicken ![]()
__________________
![]() Raubkopierer, IT-Experten und E-Gamer in den Knast !!!
Kinderschänder, Sexualstraftäter, Bankräuber und Mörder in die Gesellschaft reintegrieren, wir brauchen Platz für Computer-Kriminelle in den Gefängnissen !!! Geändert von EEBKiller (04-01-2004 um 03:25 Uhr). |
#8
|
||||
|
||||
Zitat:
![]() Zitat:
![]() (Also z.B. "./error404.htm") Zitat:
Zitat:
![]() CU Klaus |
#9
|
||||
|
||||
Ich bin jetzt mal von den Allgemeinen internen verlinkungen einer Page ausgegangen, ned nur Error Documents. Aber wenn die kein . .. oder eben garnix packen, dann muss man es halt absolut ( / ) angeben
![]() |
#10
|
|||
|
|||
Mhmmm wird wohl so sein. Versuchs mal so.
Ich selbst hab die 404er heben global auf meinem server eingestellt. also nix mit htaccess @fre sag mir bitte bescheid wenn's geht. s nimmt mi wunder ![]() |
#11
|
||||
|
||||
Danke erstmal für die kleine Lektion, klaus und EEB, obwohl ich alles, was klaus gepostet hat, auch schon voeher wusste. Neu is für mich, dass ein '/' vor einer Verlinkung als absolut gilt.
![]() Zitat:
![]() Tja, surfer, leider will ich die ErrorDocs nur für einen Unterordner und dessen Unterordner einrichten, weil ich die domainglobalen andersweitig verlinkt hab. Zum Glück allerdings haben die .htaccess Angaben einen höheren Stellenwert als die domainglobale Einstellung (eigentlich erstaunlich aber für meine Zwecke extrem praktisch). ![]() Werd dich unterrichten, wenn ich's endlich geschafft habe, innerhalb der .htaccess auf ein höheres DIR zu verlinken ... weiss allerdings wirklich ned, was ich noch probieren soll. ~f |
#12
|
||||
|
||||
du bist in /dein_ordner/
Die 404.html ist in / (Also Document root) Dann mach doch einfach ErrorDocument 404 /404.html damit verlinkst du in dem falle auf den Übergeordneten Ordner. Da kannst du leider keine "Allzweck-htaccess" machen, die bei jedem Ordner den selben Kram macht. Aber so schwer ist es ja nicht, für hjeden Ordner ne eigene htaccess zu basteln. Solang der Apache rennt, sollte das dich ned weiter kümmern ![]() |
#13
|
||||
|
||||
Zitat:
![]() Damit verlink ich auf denselben Ordner. Glaub mir, hab's ausprobiert. Ich glaub auch ned, dass '/' für root steht, sondern für den aktuellen Ordner. Bestätigt seh ich mich dadurch, dass der mir bei einer Errorpage im selben Unterordner diese ohne Probs anzeigt, aber sobald ich das File nur im root Verzeichnis hab, sucht der Browser ... und sucht ... und sucht vermutlich immernoch (ja, sowohl Opera als auch der IE und ja, ich hab's ein paar mal versucht). ![]() ~f |
#14
|
||||
|
||||
komisch auf meinem webspace steht der / immer für den Document_root.
Is wohl davon abhängig, wie der Apache konfiguriert is ![]() |
#15
|
||||
|
||||
Wahrscheinlich.
![]() Ne Ahnung, wie und wo kann ich denn diese Einstellung ändern? surfer? ![]() ~f |
#16
|
||||
|
||||
Hmm, des war des worauf ich hinweisen wollte, dass es eben nicht auf den Ordner mit der .htaccess bezogen wird sondern aufs Document Root (wobei mir dieser Begriff fehlte
![]() ![]() Zitat:
Zitat:
|
#17
|
|||
|
|||
Zitat:
hast du irgendein admin tool? |
#18
|
||||
|
||||
Ähm ... whoops.
![]() Sorry Leute, der Fehler lag nich am Server, sondern an mir. ![]() Ich hab nämlich ned einfach 'n ErrorDoc als .html File erstellt, sondern eine info.php eingerichtet, die sich um die Fehleranzeige kümmern soll. Die liegt im ROOT. Jetzt hab ich für die ErrorDocs auf meine functions.php mit der $_GET Variable errorid (also functions.php?errorid=404 usw.) verlinkt. Ebenfalls im ROOT. Die Functions sollte bei gesetzter $_GET['errorid'] dann eine Session mit dem Error festlegen und per header("Location: info.php") auf die info.php weiterleiten. Leider war mir dabei nicht klar, dass das bei einem HTTP-Fehler aus 'nem Unterverzeichnis auch auf die info.php im Unterverzeichnis (wo sie ja gar ned existiert) weitergeleitet wird. Also hab ich den Befehl inner functions.php auf header("Location: /info.php") geändert und seitdem funktioniert alles einwandfrei und ich werd bei allen Errors aus sämtlichen Unterverzeichnissen auf die info.php weitergeleitet, wo mir dank erneuter SessionAbfrage die jeweils korrekte ErrorMessage angezeigt wird. In conclusion: Ich hab mich schrecklich geirrt. Ein '/' ist für den Apache-Server sehr wahrscheinlich immer der Verweis auf's DOCUMENT_ROOT und damit eine absolute Verlinkung. PS: Warum hab ich bei meinen PHP-Scripts nicht einfach für jede error page ein eigenes File erstellt? Zu chaotisch. Warum hab ich nicht einfach direkt per info.php?errorid=404 auf die Datei und die dazugehörigen ErrorDisplays verwiesen? Ihhh, dann sieht man ja die $_GET Variable in der Adresszeile des Browsers und könnt ihr auch nicht-zugelassene Einträge mitgeben, nur um meine Skripte zu testen. Mit sessions ist's da viel gemütlicher. Die übergeben nur Variablen, wenn sie's auch sollen und nicht, wenn der User selbst eine setzen will. Trotzdem nochmal vielen Dank euch dreien, EEB, klaus und surfer. ![]() ~f ![]() |
#19
|
||||
|
||||
Du denkst viel zu kompliziert
![]() Ich hab ja seit neuestem ein selbstgebautes CMS (OK, es ist eigentlich nur ein rekursives "Hol den wert aus {xxxx}, suche nach dem Template xxxx, ersetze {xxxx} mit template xxxx script" aber trotzdem seeeeeeehr mächtig ![]() Aber um wieder zu den Errors zu kommen: ErrorDocument 401 /content.php?content=403 ErrorDocument 403 /content.php?content=403 ErrorDocument 404 /content.php?content=404 content.php is das CMS-Frontend, es holt sich per get den Code, schaut in der DB nach den jeweiligen Templates und spuckt es als Fehlerseite aus. Nix redirected. Simple and Fast ![]() ![]()
__________________
![]() Raubkopierer, IT-Experten und E-Gamer in den Knast !!!
Kinderschänder, Sexualstraftäter, Bankräuber und Mörder in die Gesellschaft reintegrieren, wir brauchen Platz für Computer-Kriminelle in den Gefängnissen !!! Geändert von EEBKiller (05-01-2004 um 19:48 Uhr). |
#20
|
||||
|
||||
Kommt ganz auf die DB drauf an. Erst zur DB connecten, nur um den Inhalt einer Page anzuzeigen wiederspricht mir. Dann hat man am Schluss nur noch TemplateFiles am Server und der ganze Inhalt der Page is inner DB stored.
![]() Ich arbeit auch mit Templates (und natürlich verschiedenen Designs), aber komplett anders. Von der Geschwindigkeit her reicht mir mein eigens kreiertes System völlig aus. Solang die Bilder und der Content direkt in den jeweiligen Pages immernoch den meisten Traffic verursachen, is alles im grünen Bereich. ![]() ~f |
#21
|
||||
|
||||
Zitat:
Das einzige, was ich noch an "Hardware" von meiner Seite hab, sind die PHPs (der Parser, und das Admin CP), die CSS-Files, die Javascripte und natürlich die Pics und Downloads ![]() |
#22
|
||||
|
||||
Zitat:
Die Templates werden alle included und den Content schreib ich auf ganz herkömmliche Weise selber rein und lad die bearbeiteten Files danach hoch. Is praktisch, so ein komplett DB-gestütztes Content Management System, ohne Zweifel ![]() ![]() ![]() PS: searchBuildTemplate( ![]() ~f |