Datei oder Verzeichnis?
Thomas Bachem
- webserver
Hallo liebe Kollegen und Kolleginnen,
ich habe mal wieder eine Frage bezüglich der Apache-Konfiguration. Wenn ich ein Verzeichnis habe, sagen wir z.B. "www.domain.de/folder", dann denkt Apache, es wäre eine Datei und es gibt einen 404er... Hängt man jedoch einen Slash an, erkennt er es als Verzeichnis und ruft es auf. Wie heißt nochmal diese Direktive, um dafür zu sorgen, dass dies automatisch geschieht, und dass er prüft, ob es ein solches Verzeichnis gibt?
Besten Dank im Voraus und Grüße
hi,
ich habe mal wieder eine Frage bezüglich der Apache-Konfiguration. Wenn ich ein Verzeichnis habe, sagen wir z.B. "www.domain.de/folder", dann denkt Apache, es wäre eine Datei und es gibt einen 404er... Hängt man jedoch einen Slash an, erkennt er es als Verzeichnis und ruft es auf. Wie heißt nochmal diese Direktive, um dafür zu sorgen, dass dies automatisch geschieht, und dass er prüft, ob es ein solches Verzeichnis gibt?
Eine eigene "Direktive" dafür gibts nicht. Aber alle Container in der httpd.conf, die auf ein (beliebiges) Verzeichnis verweisen, sollten prinzipiell so aussehen:
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
</Directory>
Du mußt außerdem bei Aliasnamen in der httpd.conf dafür sorgen, daß sie bespielsweise so aussehen:
Alias /windows/ "C:/"
Wenn hier der slash fehlt, erlebst du genau das, was du beschreibst.
Christoph S.
Hi Christoph,
Eine eigene "Direktive" dafür gibts nicht. Aber alle Container in der httpd.conf, die auf ein (beliebiges) Verzeichnis verweisen, sollten prinzipiell so aussehen:
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
</Directory>
Du mußt außerdem bei Aliasnamen in der httpd.conf dafür sorgen, daß sie bespielsweise so aussehen:
Alias /windows/ "C:/"
Wenn hier der slash fehlt, erlebst du genau das, was du beschreibst.
Ich muss zugeben, dass ich dich nicht ganz verstehe ;-). Kannst du mir ein Beispiel geben?
Grüße
hallo nochmals,
Ich muss zugeben, dass ich dich nicht ganz verstehe ;-). Kannst du mir ein Beispiel geben?
schwierig ... Folgendes: in der httpd.conf wird grundsätzlich festgelegt, wie dein Server arbeiten soll. Unter anderem muß er ja wissen, wo die Dateien und Verzeichnisse liegen, die er überhaupt zugänglich machen soll. Das geschieht mit
DocumentRoot "Laufwerk/Verzeichnis" (ohne abschließenden slash)
und weiter:
<Directory "Laufwerk/Verzeichnis">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Das wären ein paar "Standard-Vorgaben", du kannst aber innerhalb des <Dirrectory>-Containers allerhand andere Sachen auch noch festlegen.
konkret kann das auf einem Windows-Rechner so aussehen:
<Directory "C:/Server">
Optionen und anderer Krimskrams
.....
</Directory>
und auf einer LINUX-Maschine:
<Directory "usr/www/htdocs">
Optionen und anderer Krimskrams
.....
</Directory>
Sieh dir die beiden links noch an, die Kess gepostet hat. Dasselbe steht übrigens auch in der online-Dokumentation zum Apache, die du auf deiner Platte haben müßtest.
Grüße
Christoph S.
Hallo Christoph,
Du mußt außerdem bei Aliasnamen in der httpd.conf dafür sorgen, daß sie bespielsweise so aussehen:
Alias /windows/ "C:/"
die Antwort ist leider falsch.
Genau anders herum funtioniert es. Der Alias muss ohne abschliessenden Slash definiert werden. So z.B.:
Alias /windows /verzeichnis_zu_windows/
Siehe auch http://httpd.apache.org/docs/mod/mod_alias.html#alias
Hilfreich ist auch http://httpd.apache.org/docs/misc/FAQ.html#set-servername
Viele Gruesse
Kess
grrrrr, da hab ich wohl beim "copy and paste" irgendwo was übersehen. Hab das posting drei- oder viermal verändert, es war mir erst zu lang geraten, und dann hab ich wohl doch zu früh auf "absenden" gedrückt.
Der Alias muss ohne abschliessenden Slash definiert werden. So z.B.:
Alias /windows /verzeichnis_zu_windows/
Siehe auch http://httpd.apache.org/docs/mod/mod_alias.html#alias
Hilfreich ist auch http://httpd.apache.org/docs/misc/FAQ.html#set-servername
Ist ja gut, wenn jemand mitliest, der weiß, worum es geht .... ;-)
Viele Gruesse
Kess
Grüße ebenfalls
Christoph S.
Hallo Christoph,
Du mußt außerdem bei Aliasnamen in der httpd.conf dafür sorgen, daß sie bespielsweise so aussehen:
Alias /windows/ "C:/"
die Antwort ist leider falsch.
Genau anders herum funtioniert es. Der Alias muss ohne abschliessenden Slash definiert werden. So z.B.:
Alias /windows /verzeichnis_zu_windows/
Die Antwort ist leider auch falsch, bzw. beide Antworten sind richtig.
Der erste Parameter bei Alias wird exakt zeichenweise interpretiert. Wer also will, daß der Server sowohl auf /alias als auch auf /alias/ in der URL reagiert, braucht zwei Alias-Einträge:
Alias /alias /home/user/alias/
Alias /alias/ /home/user/alias/
(jetzt mal bezogen auf Unix)
- Sven Rautenberg
Moin,
Die Antwort ist leider auch falsch, bzw. beide Antworten sind richtig.
*huestel*
hat denn hier eigentlich noch niemand was von http://httpd.apache.org/docs/mod/mod_dir.html gehoert? ;-)
Der erste Parameter bei Alias wird exakt zeichenweise interpretiert. Wer also will, daß der Server sowohl auf /alias als auch auf /alias/ in der URL reagiert, braucht zwei Alias-Einträge:
Alias /alias /home/user/alias/
Alias /alias/ /home/user/alias/
also, aehm, das ist jetzt Quatsch (siehe Kess' Link zur Beschreibung von mod_alias [http://httpd.apache.org/docs/mod/mod_alias.html#alias]).
sollte man da vielleicht ne FAQ draus machen? ;) Meinungen?
Viele Gruesse,
n.d.p.
Wer also will, daß der Server sowohl auf /alias als auch auf /alias/ in der URL reagiert, braucht zwei Alias-Einträge:
Alias /alias /home/user/alias/
Alias /alias/ /home/user/alias/
also, aehm, das ist jetzt Quatsch (siehe Kess' Link zur Beschreibung von mod_alias [http://httpd.apache.org/docs/mod/mod_alias.html#alias]).
Nö, ist kein Quatsch. Kann man aus dieser Beschreibung auch so entnehmen:
Note that if you include a trailing / on the url-path then the
server will require a trailing / in order to expand the alias. That is, if you use Alias /icons/ /usr/local/apache/icons/ then
the url /icons will not be aliased.
Ich hab' zuerst auch nur den ersten Eintrag gehabt, aber damit die bekannte Kurzschreibweise nicht nutzen können. Das ging erst mit zwei Einträgen. ;)
- Sven Rautenberg
Moin,
Alias /alias /home/user/alias/
Alias /alias/ /home/user/alias/
also, aehm, das ist jetzt Quatsch [...]
Nö, ist kein Quatsch. [...]
Ich hab' zuerst auch nur den ersten Eintrag gehabt, aber damit die bekannte Kurzschreibweise nicht nutzen können. Das ging erst mit zwei Einträgen. ;)
du solltest vielleicht nochmal an deiner httpd.conf arbeiten ;)
(mod_dir eingebunden? servername?)
weil, oehm, hier funktionierts naemlich auch mit nur einem Alias...
(Beispiel: </selfhtml>), waere ja auch noch schoener (sone Config mit 2 Aliasen pro Verzeichnis muss echt komisch aussehen *g*).
Viele Gruesse,
n.d.p.
Moin!
Wer also will, daß der Server sowohl auf /alias als auch auf /alias/ in der URL reagiert, braucht zwei Alias-Einträge:
Alias /alias /home/user/alias/
Alias /alias/ /home/user/alias/
Du brauchst NUR die erste Direktive, aber OHNE den letzten /. Also:
Alias /alias /home/user/alias
Wenn die URL /alias/foo.bar aufgerufen wird, wird das erkannt, ein split zwischen /alias und /foo.bar durchgefuehrt, /alias zu /home/user/alias umgesetzt, und dann der vorher abgtrennte /foo.bar wieder angehaengt und man landet bei /home/user/alias/foo.bar. Entsprechendes gilt, wenn man nur /alias/ aufruft, ich fand nur, mit dem foo.bar-Beispiel sieht man besser, was passiert.
Wenn Du dann nur /alias aufrufst, wird festgestellt, dass /home/user/alias ein Verzeichnis und keine Datei ist und ein 302 Redirect auf /alias/ gesendet, woraufhin dann wieder obiger Mechanismus in Kraft tritt. Noetig ist das uebrigens, damit der Browser den spaeter aus relativen Links korrekt abolute URLs zusammenbauen kann.
Nö, ist kein Quatsch. Kann man aus dieser Beschreibung auch so entnehmen:
Note that if you include a trailing / on the url-path then the
server will require a trailing / in order to expand the alias. That is, if you use Alias /icons/ /usr/local/apache/icons/ then
the url /icons will not be aliased.
Stimmt, das begruendet aber trotzdem nicht, dass man 2 Aliasse brauchen wuerde.
Ich hab' zuerst auch nur den ersten Eintrag gehabt, aber damit die bekannte Kurzschreibweise nicht nutzen können. Das ging erst mit zwei Einträgen. ;)
Du hattest eben den falschen. ;-) (Ja, steht in der default httpd.conf so drin, find ich auch bloed.)
So long
Hallo,
ich übersetze es Dir mal...
Nö, ist kein Quatsch. Kann man aus dieser Beschreibung auch so entnehmen:
Note that if you include a trailing / on the url-path then the
server will require a trailing / in order to expand the alias. That is, if you use Alias /icons/ /usr/local/apache/icons/ then
the url /icons will not be aliased.
Da steht: Wenn Du an den URL-Pfad ein / ans Ende setzt, wird der Server diesen auch immer erwarten.
Wenn Du also als Alias /icons/ /usr/local/apache/icons/ definierst, dann wird die URL /icons nicht "parsed" oder sagen wir mal nicht erkannt.
Es steht aber nicht, daß die URL /icons/ nicht geparsed würde, wenn man als Alias /icons definiert (es wird nämlich).
Ich möchte noch auf die Bemerkung "steht in der Apache Dokumentation" eingehen:
Ich kann mich noch gut erinnert, wie jemand einen ganzen Tag nach diesem unscheinbaren Absatz gesucht hat (und gefunden). Es ist zu sehr versteckt und ich stimme n.d. zu: Ab in die FAQ (wo immer die sein mag *g*)
Ciao, Vedat
Hallo,
[...](wo immer die sein mag *g*)
http://httpd.apache.org/docs/misc/FAQ.html
konkret
http://httpd.apache.org/docs/misc/FAQ.html#set-servername
Grüße
Klaus
Moin,
[...](wo immer die sein mag *g*)
http://httpd.apache.org/docs/misc/FAQ.html
konkret
http://httpd.apache.org/docs/misc/FAQ.html#set-servername
Jaja, schon gut :-)
Ich glaube, n.d. meinte das Forums-FAQ hier. Wenn nicht, dann meinte ich es auf jeden Fall so. Und die Bemerkung sollte eine Anspielung darauf sein, daß viele doch nicht in die FAQ reinschauen.
Ciao, Vedat
Hallo Community,
ich bin euch echt dankbar für das rege Interesse an dem Thema ;-), aber leider ist dabei für mich noch nichts anständiges bei rumgekommen. Ich will einfach wissen, wie bewirken kann, dass man Verzeichnis-URLs sowohl mit Slash als auch ohne angeben kann und der Server das automatisch erkennt, ohne dass ich für jedes Verzeichnis extra einen Directory-Index oder so anlegen muss. Kann man das nicht irgendwo "global" einstellen?
Sorry, wenn ich da was nicht verstanden habe, aber auf dem Apache- und UNIX-Gebiet bin ich totaler Newbie...
Grüße und Danke
Hallo Community,
Willkommen ;)
ich bin euch echt dankbar für das rege Interesse an dem Thema ;-), aber leider ist dabei für mich noch nichts anständiges bei rumgekommen. Ich will einfach wissen, wie bewirken kann, dass man Verzeichnis-URLs sowohl mit Slash als auch ohne angeben kann und der Server das automatisch erkennt, ohne dass ich für jedes Verzeichnis extra einen Directory-Index oder so anlegen muss. Kann man das nicht irgendwo "global" einstellen?
ich habe einen Vorschlag fuer dich:
Stell deine httpd.conf irgendwo online, dann sagen wir dir hier, was du warum aendern musst, und wo du das naechste Mal suchen kannst ;-)
Sorry, wenn ich da was nicht verstanden habe, aber auf dem Apache- und UNIX-Gebiet bin ich totaler Newbie...
*schulterzuck*, kann doch jedem passieren ;)
Viele Gruesse,
n.d.p.
Ich musste einfach nur den Servernamen auf meine Domain umstellen, das klingt für mich sehr viel leichter als eure Antworten, aber wahrscheinlich bin ich nur zu dumm ;-). Danke an alle für eure Antworten, letztendlich hat mir dann die Apache-FAQ weitergeholfen... Jetzt weiß ich ja, wo die zu finden ist :-).
Moin,
Ich musste einfach nur den Servernamen auf meine Domain umstellen, das klingt für mich sehr viel leichter als eure Antworten, aber wahrscheinlich bin ich nur zu dumm ;-). [...]letztendlich hat mir dann die Apache-FAQ weitergeholfen... Jetzt weiß ich ja, wo die zu finden ist :-).
*seufz*
du moechtest dir die Antworten, die man dir hier gibt, auch durchlesen.
Der Link auf die entsprechende Stelle in der Apache-FAQ kam zwei(!) Mal.
<?m=150443&t=28893> und <?m=150535&t=28893>.
Da du das hier wahrscheinlich auch nicht mehr liest, wirst du in Zukunft zumindest auf meine Antworten hoechstwahrscheinlich verzichten muessen.
Viele Gruesse,
n.d.p.