Probleme beim Verzeichnis-Aufruf
Alexander
- webserver
Hi,
ich habe ein Problem mit meinem Apache.
Beim Aufruf von http://domain/verzeichnis bekomme ich ein 404 angezeigt, obwohl das Verzeichnis und die Index-Datei vorhanden sind.
Bei einem Aufruf von http://domain/verzeichnis/ wird hingegen die Seite korrekt angezeigt.
Anscheinend behandelt Apache "/verzechnis" wie eine Datei. Diese existiert natürlich nicht, weshalb es den 404 gibt.
Meine Frage ist nun, was ich wo eintragen muss, damit der Seitenaufruf auch ohne Slash am Ende klappt?
Viele Grüße...
Alex :)
hallo Alex,
Beim Aufruf von http://domain/verzeichnis bekomme ich ein 404 angezeigt
Bei einem Aufruf von http://domain/verzeichnis/ wird hingegen die Seite korrekt angezeigt
Du mußt dir mal die Apache-Dokumentation anschauen. Irgendwo hast du das mit den abschließenden Slashes in deiner httpd.conf bei der Vergabe der Aliasnamen (oder bei der Konfiguration deiner virtuellen hosts) falsch gemacht. In den Kommentaren der httpd.conf steht ausdrücklich:
Grüße aus Berlin
Christoph S.
Hi,
Du mußt dir mal die Apache-Dokumentation anschauen. Irgendwo hast du das mit den abschließenden Slashes in deiner httpd.conf bei der Vergabe der Aliasnamen (oder bei der Konfiguration deiner virtuellen hosts) falsch gemacht.
Ja, das habe ich wohl. Leider weiss ich immer noch nicht was.
Für mein Document-Root habe ich folgendes eingetragen:
DocumentRoot "/var/www/htdocs"
<Directory />
Options FollowSymLinks MultiViews Includes
AllowOverride All
Order Deny,Allow
Deny from all
Allow from all
</Directory>
<Directory /var/www/htdocs>
Options FollowSymLinks MultiViews Includes
AllowOverride All
Order Deny,Allow
Deny from all
Allow from all
</Directory>
Sollte es innerhalb von "/var/www/htdocs" ein Verzeichnis z.B. "fun" (also lautet der komplette Pfad "/var/www/htdocs/fun") haben, kann man es für gewöhnlich über http://domain/fun und http://domain/fun/ aufrufen. Die erste Möglichkeit klappt bei mir nicht und ich kann mir nicht erklären, weshalb es nicht klappt. Dein Hinweis brachte mich leider auch nicht weiter, da ich mir nicht vorstellen kann, dass ich für jedes Unterverzeichnis im Document-Root ein neuen Alias setzen muss. Virtuelle Hosts setze ich nicht ein, und neben den "Standard-Aliasen" "/cgi-bin/" und "/icons/" habe ich auch keine weitern definiert.
Wenn also noch jemand eine Idee hat, wäre ich ihm sehr dankbar.
Viele Grüße...
Alex :)
hallo Alexander,
ehe wir weiter versuchen, das Problem zu lösen, solltest du doch _bitte_ angeben, auf welcher Plattform (Betriebssystem) du arbeitest und welche Apache-Version du installiert hast. Sinnvoll ist auch, zu erfahren, ob du dir deinen Apache selber kompiliert hast.
Grüße aus Berlin
Christoph S.
Hi,
ehe wir weiter versuchen, das Problem zu lösen, solltest du doch _bitte_ angeben, auf welcher Plattform (Betriebssystem) du arbeitest und welche Apache-Version du installiert hast. Sinnvoll ist auch, zu erfahren, ob du dir deinen Apache selber kompiliert hast.
Nun, ich sah bisher keinen Grund dies zu nennen, da es in meinen Augen nicht wichtig erschien, da ich nicht davon ausgehe, dass es ein Bug im System oder Apache ist.
Bei meinem System handelt es sich um ein Linux-System mit Apache 1.3.27. Es handelt sich um eis/fair Linux, ein speziell für Server-Dienste angepasstes Linux ([http://www.eifair.org]). Um die Handhabung mit dem System zu vereinfachen und auch Anfängern einen möglichst schnellen und reibungslosen Betrieb zu garantieren, werden von verschiedenen Entwicklern Pakete zusammengetragen, die dann auf dem System installiert werden. Dabei handelt es sich ausschließlich um bereits kompilierte Programme.
Viele Grüße...
Alex :)
hallo Alexander,
Nun, ich sah bisher keinen Grund dies zu nennen, da es in meinen Augen nicht wichtig erschien, da ich nicht davon ausgehe, dass es ein Bug im System oder Apache ist.
Nein, nach deiner bisherigen Fehlerbeschreibung ist das kein bug im System und auch keiner im Apache, sondern eine Falscheinstellung in der httpd.conf. Meine Nachfrage war dennoch wichtig, weil wir schon Diskussionen mit Leuten hatten, die ein DocumentRoot "/var/www/htdocs" für einen Windows-Rechner einrichten wollten.
Bei meinem System handelt es sich um ein Linux-System mit Apache 1.3.27.
Ok, das macht unter Umständen einen Unterschied zu einem Apache 2.0.45, allerdings nicht für dein Problem, sondern für den Umgang mit den Modulen.
Ich zitiere mal aus deinem vorangegangenen posting:
Sollte es innerhalb von "/var/www/htdocs" ein Verzeichnis z.B. "fun" (also lautet der komplette Pfad "/var/www/htdocs/fun") haben, kann man es für gewöhnlich über http://domain/fun und http://domain/fun/ aufrufen.
Das kann man eben "für gewöhnlich" nicht. Dafür brauchst du einen Alias. Und wie das da mit den nachgestellten Slashes aussieht, habe ich dir bereits geschrieben.
Der Unterschied zwischen 1.3.19 und der "final" 1.3.27 ist nicht so sehr groß, so daß ich es wage, mal auf meinen Artikel http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf062.htm#a1 zu verweisen. Der Artikel selbst ist nicht mehr ganz aktuell und befindet sich zur Zeit in Überarbeitung, aber vielleicht hilft dir die Übersetzung weiter. Vielleicht mußt du einfach mal mit den abschließenden Slashes experimentieren, also sie mal weglassen, mal hinschreiben und jeweils deinen Server neu hochfahren. du kannst ja in <directory>-Containern auch beliebige andere Verzeichnisse ansprechen außer /var/www/htdocs. Und es macht halt einen Unterschied, ob du
<Directory "/var/www/htdocs">
oder
<Directory "/var/www/htdocs/">
vorgeschrieben hast.
Grüße aus Berlin
Christoph S.
Hi Christoph,
inzwischen habe ich den vermeintlichen Fehler und Ursache meines Problems gefunden.
In der httpd.conf habe ich als "ServerName username.dnydns.com" eingetragen. Unter dieser URL ist der Server auch ausserhalb meines Netzwerk erreichbar. Intern allerdings nicht: An meinen Router habe ich loopback deaktiviert, damit ich die Rechner innerhalb meines Netzwerkes auch als solche identfizieren kann. Wenn ich loopback aktiviert habe, erfolgen alle Zugriffe der Rechner aus meinem Netzwerk mit meiner (dynamischen) WAN-IP. So ist eine Zugriffssteuerung über die IP nicht mehr möglich, weshalb ich von dieser Methode abstand nahm.
Ich spreche also den Apache innerhalb meines Netzwerks über seine IP an. Und genau hier macht es die beschriebenen Probleme mit den Verzeichnissen, so dass ServerName und aufgrufene URL nicht mehr übereinstimmen.
Zugriffe von ausserhalb, die über username.dyndns.com laufen, funktionieren wie gewünscht.
Ich bin also dazu übergegangen, virtuelle Hosts einzurichten, da dann der Apache auf mehrere "ServerNames" hört. So klappen die Zugriffe innerhalb und ausserhalb des Netzwerks wie gewünscht.
Weshalb es allerdings zu diesem Problem kommt, wenn der ServerName falsch bzw. unpassend ist, kann ich mir bisher nicht erklären.
Viele Grüße...
Alex :)