Christoph Schnauß: Apache: Alias + htaccess = 404?

Beitrag lesen

hallo,

Ich habe ein Problemchen mit meinem Apache Server und zwar habe ich einen Alias angelegt in dem eine htaccess Datei ist die alle Anfragen an die index.php weiterleitet.

Das ist nicht korrekt ausgedrückt. "in einem Alias" kannst du gar nichts an- oder ablegen. Aber in dem Verzeichnis, das dein Apache über den Alias ansprechen können soll, kannst du das sehr wohl.

Wenn ich nun auf die Alias URL gehe bekomme ich die Meldung "The requested URL /var/alias/index.php was not found on this server.". Und im Errorlog steht folgendes "File does not exist: /var/www/alias". Ich verstehe nicht warum sich die beiden Meldungen gegenseitig widersprechen.

Das tun sie ja nicht, sondern sie beschreiben beide exakt dasselbe. Nur: die "Meldung", die du in deinem Browser siehst, kommt unmittelbar vom Apache und berücksichtigt deinen Aliasnamen, die Eintragung im Errorlog beschreibt den physischen Ort, an dem der Fehler auftrat. Also: die erste Meldung ist die über eine nicht auffindbare URL, die zweite Meldung betrifft einen nicht auffindbaren physischen Pfad. Wenn also beide im Grunde genommen dasselbe aussagen, bleibt nur eine Schlußfolgerung übrig: du hast vergessen, so eine Datei "index.php" anzulegen. Oder es stimmt irgendwas am Pfad für dein DocumentRoot nicht (und genau das ist es vermutlich).

#wozu die nachfolgenden 4 Zeilen eigentlich?
<Directory />
  Options FollowSymLinks
  AllowOverride None
</Directory>

Das ist die "very restrictive" Grundeinstellung für grundsätzlich jeden <Directory>-Container. Deswegen darfst bzw. mußt du in andere <Directory>-Container eben andere Werte reinschreiben, was du ja auch tust:

<Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
</Directory>

Du hast für /var/www/ zwei weitere zusätzliche "Options" angegeben (wobei "FollowSymLinks" überflüssig gewesen wäre, da das ja schon festgelegt ist), du hast für "AllowOverride" den vorgegebenen Wert gegenkorrigiert, und du hast "Order" neu dazugetan.

Übrigens: vergleiche mal bitte

<Directory /var/www/>

mit

<Directory /var/alias>

Fällt dir was auf? Nein? Was ist mit dem "trailing slash" bei "/var/www/"? Gehört der da hin?

Alias /alias /var/alias

Der Alias ist einigermaßen in Ordnung (allerdings solltest du ihn nicht unbedingt selbst wieder "alias" nennen), du könntest höchstens mal schauen, ob es was bringt, noch Anführungszeichen zu verwenden, also

Alias /alias "/var/alias"

Grüße aus Berlin

Christoph S.

--
Visitenkarte
ss:| zu:) ls:& fo:) va:) sh:| rl:|