• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Eigene 404 Seite und relative Pfade?

ps2freak

Mitglied
Moin moin,

ich habe vor einigen Tagen eine 404 Fehlersite im Design meiner Website erstellt usw. und sofort und dies auch korrekt in der htaccess Datei eingestellt. Sprich ich habe ein root-Verzeichnis, wo die .htaccess Datei liegt und im Fehlerfall "404" auf die Seite "404error.php" im Unterordner "error_documents" verweist. Ich habe darin den Pfad zu meinem Stylesheet und z.B. zur Startseite, Sitemap etc. folgendermaßen eingestellt:
Stylesheet: "../styles/main.csss"
Startseite: "../index.php"
So, wenn ich jetzt im Adressfeld "http://localhost/projektname/irgendeinordner/falschername.xyz" eingebe, funktioniert die 404 Seite einwandfrei. Wenn ich jetzt allerdings stattdessen "http://localhost/projektname/falschername.xyz" eingebe, dann funzt die Seite nicht mehr, was bedeutet, dass eben die Links nicht funzen und das Stylesheet nicht greift. Woran das liegt ist mir klar, denn es wird nun quasi im root meines Apache-Servers nach entspechenden Dateien etc. gesucht, aufgrund der relativen Pfade die ich in der 404 Seite benutzt habe. Denn es wird ja nicht in der Adresszeile die 404 Seite angezigt, sondern immernoch die falsche URL.
Man könnte das Problem jetzt zwar lösen, indem ich absolute Pfade verwende - dies ist aber wahrlich keine saubere Lösung.

Die Frage ist jetzt also, wie kann ich das Lösen, dass meine 404-Seite immer funzt - egal von welcher "Ebene" sie aufgerufen wird???
Ich war schon in dem Thread: http://www.html.de/server-apache-co/49352-wie-stelle-ich-meine-html-error-seite-ein.html
In diversen anderen und habe bissel Google durchforstet, aber nicht wirklich was gefunden....


Ich hoffe ihr könnt mir da helfen,
MfG.
 
Werbung:
Eine Error-Seite wird genau wie eine normale Seite per HTTP ausgeliefert und vom Browser angezeigt. Wenn Du darin auf weitere Dateien (CSS, Bilder, JS ..) verweisen willst, solltest Du evtl. deren absolute Pfade angeben um ganz sicher zu gehen. So wie man es auch bei normalen Seiten machen kann.

Also statt
Code:
../styles/main.css

eher

Code:
/styles/main.css

falls diese Datei unter

Code:
http://www.example.com/styles/main.css

erreichbar ist.
 
Vielen Dank, ich hatte zwar vorher schon was auf englisch gefunden (bevor ich die Frage gestellt hab) aber da hatte ich das wohl noch nicht richtig verstanden, wie das gemeint war.
Bei dir habe ich es jetzt verstanden - und es funktioniert super!

So wie man es auch bei normalen Seiten machen kann.
Schlaue Idee, ist vielleicht bei meiner Navi auch sinnvoll, dann brauche ich die Links nicht immer anpassen.


Danke nochmal und MfG.
 
Werbung:
wie threadi schon schreibt ... css und js dateien mit fixen pfadangaben angeben .. also am besten gleich mit Example Domain angeben, damit statische dateien wie Style-Sheets und JavaScript IMMER erreichbar sind, egal wie die verzeichnisstruktur aussieht.
sonst müsstest du immer überprüfen in welcher verzeichnisebene man sich gerade befindet und entsprechende ../ davor setzen
 
wie threadi schon schreibt ... css und js dateien mit fixen pfadangaben angeben .. also am besten gleich mit Example Domain angeben, damit statische dateien wie Style-Sheets und JavaScript IMMER erreichbar sind, egal wie die verzeichnisstruktur aussieht.
sonst müsstest du immer überprüfen in welcher verzeichnisebene man sich gerade befindet und entsprechende ../ davor setzen

Genau deswegen mache ich das jetzt auch mit den absoluten Pfaden.
Das erspart einem dann doch ne Menge Arbeit, wie du schon sagtest mit dem Prüfen ich welcher Ebene etc.
 
So wie man es auch bei normalen Seiten machen kann.

Sagt mal Leute, kan nes sein, dass das nicht bei require_once und Textdateien funzt? Ich habe nämlich ein require_once und wollte das auch so machen, aber da kommt dann ein Fehler "no such file or directory" --> was denke ich mal bedeutet, dass er die Datei nicht finden kann.
Das selobe beim Auslesen einer Textdatei, scheinabr kann er die Datei nicht finden...

Frage: liegt der Fehler bei mir, oder ist es bei den beiden tatsächlich nicht möglich, diese absoluten Pfade zu verwenden?
MfG.

Edit: hab grad gemerkt, sorry für den Doppelpost, normalerweise benutze ich immer Edit...
 
Werbung:
Bei PHP-Programmierungen arbeitest Du nicht mit HTTP-Urls sondern mit lokalen Pfaden. Da gibt es (meist) natürlich keinen Pfad /styles/main.css oder ähnlich. Dort musst Du natürlich mit den echten lokalen Pfaden ODER relativen Pfaden arbeiten.
 
Zurück
Oben