hallo Matze,
ich fasse mal beide postings zusammen:
Das Modul für Aliase ist j acschon per default geladen.
Es ist lediglich der "LoadModule"-Befehl dafür aktiviert. Ist das Modul selbst denn vorhanden? Bei deiner Konfiguration müßte die Moduldatei laut "ServerRoot" unter
D:\Apache\Apache Group\Apache2\modules\mod_alias.so
zu finden sein.
Ich habe bisher nicht darauf hingewiesen, aber ein möglicher Fehler liegt auch in diesem Verzeichnisnamen. "Apache Group" ist wegen des Leerzeichens kein sehr günstiger Name, warum die Apache-Entwickler das als "default" vorsehen, weiß ich nicht.
Wenn ich über die URL http://myhost/error/404html darauf verweise wird diese angezeigt.
Das sollte auch so sein.
Klappt natürlich nur aus einer Zone heraus.
Nein. Das klappt grundsätzlich, sobald dein Webserver angesprochen wird. Dein DNS (ich weiß immer noch nicht, was du da unter Windows installiert hast) sorgt für die Namensauflösung, hat aber mit dem, was der Server anzeigt, sobald er angesprochen wurde, überhaupt nichts zu tun.
- wird SSL auch nicht verwendet im Hause. Ist ja Intranet und da ist SSL nicht notwendig.
Da hast du etwas falsch gelesen. Ich hatte nicht "SSL" geschrieben, sondern "SSI" - steht für Server Side Includes. Die originalen Apache-Fehlerseiten funktionieren nur mit Includes. Wenn du allerdings eigene Fehlerseiten designst, muß das nicht mehr so sein.
Ich war ja schon fast soweit mir den Quellcode des apache anzusehen.
Das schadet dir nicht, hilft dir aber bei der Konfiguration überhaupt nicht weiter. Wichtig ist eine etwas umfangreichere Kenntnis der Sourcen lediglich dann, wenn du ihn selbst kompilieren möchtest und dabei darauf achten mußt, daß die Module alle kompiliert werden.
Bei Angabe http://mydomain/keine.html die e nicht gibt, wird nur ein 404 Fehler gemeldet die Fehlerseite jedoch nicht angezeigt.
Und was bekommst du bei
http://IPAdresse/keine.html?
Alias /error/ "d:/web/error/"
Die Fehlerseiten sind "Bestandteil" des Servers selbst und gehören eigentlich nicht ins "DocumentRoot", sondern ins "ServerRoot". Korrekt wäre also bei dir möglicherweise:
Alias /error/ "d:/Apache/Apache Group/Apache2/error/"
Hier macht sich lediglich das Leerzeichen in "Apache Group" unter Umständen negativ bemerkbar.
Allerdings habe ich das mal durchgespielt und bei mir ebenfalls ein Verzeichnis "D:\web\error" angelegt - außerhalb von "DocumentRoot" (das ist bei mir "I:/root") und "ServerRoot". Mit der von mir bereits genannten Konfiguration bekomme ich meine eigene 404-Fehlerseite trotzdem, was auch einleuchtend ist, da ein "Alias" eben gerade diese Aufgabe hat, etwas ins "DocumentRoot" oder ins "ServerRoot" zu integrieren.
<Directory "d:/web/error/">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en de es fr it nl sv
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 404 /error/404.html
Wie bereits angeführt, funktioniert genau diese Angabe bei mir völlig problemlos.
Mehr kann ich dir dazu nicht mehr sagen.
Die Fehler aus dem error log:
[Sun Jul 20 14:17:35 2003] [error] [client 80.145.79.89] File does not exist: D:/WEB/keine.html
Das ist korrekt.
Die access.log:
80.145.79.89 - - [20/Jul/2003:14:16:25 +0100] "GET /error/404.html HTTP/1.1" 200 234
Das ist der (erfolgreiche) Aufruf über http://myhost/error/404.html. Nur ist das keine lokale IP-Adresse, aber du hast sie ja hier hoffentlich gefälscht.
80.145.79.89 - - [20/Jul/2003:14:16:32 +0100] "GET /keine.html HTTP/1.1" 404 14
Auch das ist korrekt und hätte dir eigentlich deine Fehlerseite bringen müssen. Zum Vergleich - so sieht das bei mir aus:
pc1 - - [20/Jul/2003:15:40:06 +0200] "GET /keine.htm HTTP/1.1" 404 8467
Ich habe dir jetzt alles gesagt, was ich zu diesem Thema beitragen kann.
Grüße aus Berlin
Christoph S.