Folgendes hatte auf meinen Virtual Host versucht bei einen 404 Fehler weiterzuleiten auf /error/404.html
Allerdings bekomme ich dann nur folgendes zurück:
Not Found
The requested URL /gibt/es/leider/nicht/ was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 Server at beispiel Port 80
Und Hier meine Einträge:
Virtual Host:
- Code: Select all
<VirtualHost *:80>
DocumentRoot C:/xampp/htdocs/beispiel
ServerName beispiel
DirectoryIndex index.html index.php
<Directory "C:/xampp/htdocs/ beispiel ">
Options Indexes FollowSymLinks Includes ExecCGI
Order allow,deny
Allow from all
AllowOverride All
</Directory>
</VirtualHost>
.htaccess:
- Code: Select all
ErrorDocument 404 /error/404.html
RewriteEngine on
RewriteBase /
# Wenn kein / slash in Adresse dan weiterleiten an AdressURI/ Add trailing slash
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
# RewriteRules um Namen und Strucktur der Ordner an Datei als QUERY STRING zu uebergeben.
RewriteRule ^([-0-9a-zA-Z]+)/([-0-9a-zA-Z]+)/seite([0-9]+).?$ index.php/?id=$2&seite=$3&kategorie=$1&%{QUERY_STRING} [QSA,L]
RewriteRule ^([-0-9a-zA-Z]+)/seite([0-9]+).?$ index.php/?id=$1&seite=$2&kategorie=$1&%{QUERY_STRING} [QSA,L]
RewriteRule ^([-0-9a-zA-Z]+)/([-0-9a-zA-Z]+).?$ index.php/?id=$2&kategorie=$1&seite=0.1&%{QUERY_STRING} [QSA,L]
RewriteRule ^([-0-9a-zA-Z]*).?$ index.php/?id=$1&kategorie=$1&seite=0.1&%{QUERY_STRING} [QSA]
Auf meiner echten Homepage bei Funpic funktioniert das allerdings alles ohne Probleme und zeigt mir bei einem ungültigen link die gewünschte Fehlerseite an.
Auch musste ich feststellen das wenn ich die .htaccess Datei nur mit ErrorDocument 404 /error/404.html ins htdocs lege.
Zum Beispiel beim Aufruf von http://localhost/gibtnicht die gleiche Fehlermeldung bekomme wie oben beschriebne.
Kann somit eigentlich auch nichts mit dem VirtualHost zutun haben.
Die Datei und der Ordner ist aber auf jeden fall vorhanden schaue ich mit den Windows Explorer existiert sie unter „C:\xampp\htdocs\error\404.html“.
Einen Teilerfolg habe ich mittlerweile auch zustande gebracht. Lege ich die Datei unter „C:\xampp\htdocs\404.html“ und gebe dies auch in der .htaccess Datei an so kommt beim Aufruf von http://localhost/gibtnicht die gewünschte Fehlerseite das gleiche beim VirtualHost.
Aber es muss doch auch möglich sein die Fehlerseite in ein eigenes Verzeichnis zulegen?
Da ich mit Googeln und der Apache Dokumentation nichts Hilfreiches zu meinen Problem finden konnte hoffe ich nun auf ein paar Hilfreiche Antworten.
Mit freundlichen Grüßen carschrotter.