Calocybe: Redirect fuer Index.html im Apache

Beitrag lesen

Hallo!

Was passiert denn stattdessen? Ein 404 Error? (Falls ja, handelt es sich bei /hallo/ um ein virtuelles Verzeichnis (Alias)?)

genau das passiert - ein 404-Error - und genau das möchte ich abstellen, aber wie ???

Leider hast Du die Frage in Klammern nicht beantwortet. Ich nehme jetzt einfach mal "Ja" als Antwort an, da mir nichts anderes zu diesem Verhalten einfaellt.

Du hast also (in meiner Annahme) einen Alias fuer "/hallo/" gesetzt:
    Alias /hallo/ "/home/beate/some/dir/xyz/"
Mit diesem Alias hast Du das virtuelle Verzeichnis /hallo/ erzeugt; der Inhalt kommt von der Platte unter dem hinten genannten Pfad (waehrend die Dateien normalerweise unterhalb von z.B. /opt/apache/htdocs/ gesucht werden). Das Problem ist, dass die Alias-Erkennung wirklich nur auf "/hallo/" anspricht, nicht aber auf "/hallo". Letzteres wuerde nach wie vor auf /opt/apache/htdocs/hallo abgebildet werden, was es sehr wahrscheinlich nicht gibt. Und deshalb gibt's einen 404.

Du muesstest den Alias daher so definieren:
        Alias /hallo "/home/beate/some/dir/xyz"
Also vorn und hinten den letzten / weglassen. Dadurch wird bei Aufruf von www.domain.com/hallo ein Alias-Match festgestellt und auf den physikalischen Pfad gemappt. Dann wird natuerlich festgestellt, dass es sich bei dem xyz um ein Verzeichnis handelt und ein Redirect auf www.domain.com/hallo/ ausgegeben. Der Browser fragt wieder unter der neuen Adresse an und es wird wiederum ein Match auf /hallo festgestellt. Und: Alles was danach kommt (naemlich der /) wird an den gemappten Pfad angehaengt. Du fragst also (pseudosyntaktisch) nach
    "/hallo" + "/"
das wird abgebildet auf
    "/home/beate/some/dir/xyz" + "/"
und
    "/hallo" + "/laber.html"   (also www.domain.com/hallo/laber.html)
wuerde abgebildet werden auf
    "/home/beate/some/dir/xyz" + "/laber.html"
.

Das ist das ganze Problem mit den Aliases. Leider wird in der Vorkonfiguration des Apache dieser Weg praeferiert, naemlich mit den Abbildungen /icons/ und /cgi-bin/. Ich aendere diese Angaben immer in /icons und /cgi-bin.

HTH, Roland