Der Martin: %{REQUEST_FILENAME} !-d fürt zu NetworkError: 403 Forbidden

Beitrag lesen

Hallo,

RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) meinOrdner/meinedatei.php

#Dir Listening ausschalten
Options -Indexes

  
okay, das sagt schon mehr.  
  

> Ich verstehe:  
> Das Verzeichnis von "www.blah.ch" hat keine index - Datei.  
> Weil das Verzeichnis aber existiert, ...  
  
Nein. Der Request lautet auf "/", da treffen deine beiden RewriteConds nicht zu - die matchen nur Entsprechungen im Dateisystem.  
Deshalb ...  
  

> Weil das Verzeichnis aber existiert, versucht nun Apache dessen Inhalt anzuzeigen. Aber das ist "verboten" und nun daher gibts nichts mehr anzuzeigen...  
  
... greift der Apache nach wie vor auf / zu, so als ob gar kein Rewriting konfiguriert wäre.  
  

> Aber warum dann  ein "403 Forbidden"?  
  
Was sonst? Vielleicht "404 Not Found"? Nein, der Apache hat ja "etwas" gefunden, was auf den Request passen könnte, nämlich das Verzeichnislisting (nicht listening, "listen" heißt zuhören). Aber es ist ihm verboten worden, das tatsächlich auszuliefern, also 403.  
  

> Ich müsste also Apache eine Ausnahme hinzufügen, die da heisst:  
> Wenn du auf www.blah.ch bist (home Verzeichnis),  
> dann leite auch auf meinOrdner/meinedatei.php um.  
> Ist das ein korrekter Lösungsansatz?  
  
Ein möglicher, zumindest. Aber was willst du denn eigentlich erreichen? So wie es aussieht, willst du jeden Request, der nicht auf eine existierende Datei oder ein existierendes Verzeichnis abgebildet werden kann, auf eine einzige Ressource umbiegen. Sieht mir eher danach aus, als wolltest du den Mechanismus des ErrorDocument nachbauen ...  
  
So long,  
 Martin  

-- 
Besteht ein Personalrat aus nur einer Person, erübrigt sich die Trennung nach Geschlechtern.  
  (aus einer Info des deutschen Lehrerverbands Hessen)  
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(