Error 403, wenn Unterverzeichnis gleichzeitig DocumentRoot einer zusätzlichen Domain

Apache, Lighttpd, nginx, Cherokee
vevelt
Posts: 122
Joined: 2003-08-01 12:18
Location: Itzehoe

Error 403, wenn Unterverzeichnis gleichzeitig DocumentRoot einer zusätzlichen Domain

Post by vevelt » 2007-08-22 08:30

Ich habe gestern eine Webseite (eines Bekannten) von meinem alten Rootserver (Apache 2.0) auf den neuen umgezogen (Apache 2.2). Auf dem Server läuft Confixx 3.3. Besagte Webseite hört auf 2 Domains:

Domain 1 (englisch)
Domain 2 (deutsch)

Das stellt sich dann wie folgt dar:

Code: Select all

DocumentRoot der Domain 1 (englisch)
  |
  |-> index.html (englische Begrüßungsseite)
  |-> <verzeichnis1> (DocumentRoot der Domain 2 (deutsch)
       |
       |-> index.html (deutsche Begrüßungsseite)
       |-> startseite_deutsch.html
       |-> startseite_englisch.html


Soweit sieht die Struktur der Domains, Dateien und Verzeichnisse aus. Das Problem ist nun, dass die deutsche Webseite problemlos funktioniert, d.h. die Anfrage korrekt im <verzeichnis1> landet und der Webserver dort die Dateien ausliefert.
Die englische Domain zeigt auch noch korrekt die englische Begrüßungsseite, die dann jedoch in der Weise http://<domain1>/<verzeichnis1>/startseite_englisch.html verlinkt, und da gibt es dann einen 403er Forbidden Fehler...

Die merkwürdige Struktur der Seite steht hier erstmal nicht zur Debatte, das komische ist nur, dass diese Seite auf den 2-3 vorigen Servern so jeweils funktioniert hat (Apache 1.3, Apache 2.0). Der Zugriff von Domain1 auf das Unterverzeichnis <verzeichnis1> war problemlos möglich...
Nun scheint es so zu sein, dass die Tatsache, dass dieses Verzeichnis DocRoot der deutschen Domain ist, den Zugriff irgendwie verhindert.

Die Permissions habe ich natürlich entsprechend angepaßt (775 bzw. ganz kurz testweise sogar mal 777), daran liegt es nicht...

Hier noch der Virtual-Host-Eintrag (von Confixx erzeugt):

Code: Select all

<Directory "/var/www/web21/html">
  Options -FollowSymLinks -SymLinksIfOwnerMatch
  <IfModule mod_access.c>
    Allow from all
  </IfModule>
  <IfModule mod_authz_host.c>
    Allow from all
  </IfModule>
  php_admin_flag engine on
</Directory>

<Directory "/var/www/web21/html/cgi-bin/">
  <IfModule mod_python.c>
    <Files ~ ".py$">
      AddHandler python-program .py
      PythonHandler mod_python.cgihandler
    </Files>
  </IfModule>
</Directory>
<VirtualHost xxx.xxx.xxx.xxx:80>
  ServerName <domain1>
  ServerAlias www.<domain1> web21.<servername>
  DocumentRoot /var/www/web21/html
  SuexecUserGroup web21 web21
  ScriptAlias /cgi-bin/ /var/www/web21/html/cgi-bin/
  <IfModule mod_python.c>
    <Files ~ ".py$">
      AddHandler python-program .py
      PythonHandler mod_python.publisher
    </Files>
  </IfModule>
  php_admin_value open_basedir /var/www/web21/html/:/var/www/web21/phptmp/:/var/www/web21/files/:/var/www/web21/atd/
  php_admin_value file_uploads 1
  php_admin_value upload_tmp_dir /var/www/web21/phptmp/

php_admin_value upload_max_filesize 8M
</VirtualHost>

<VirtualHost xxx.xxx.xxx.xxx:80>
  ServerName <domain2>
  ServerAlias www.<domain2>
  DocumentRoot /var/www/web21/html/<verzeichnis1>
  SuexecUserGroup web21 web21
  ScriptAlias /cgi-bin/ /var/www/web21/html/cgi-bin/
  <IfModule mod_python.c>
    <Files ~ ".py$">
      AddHandler python-program .py
      PythonHandler mod_python.publisher
    </Files>
  </IfModule>
  php_admin_value open_basedir /var/www/web21/html/:/var/www/web21/phptmp/:/var/www/web21/files/:/var/www/web21/atd/
  php_admin_value file_uploads 1
  php_admin_value upload_tmp_dir /var/www/web21/phptmp/

php_admin_value upload_max_filesize 8M
</VirtualHost>


Meine Frage ist nun: hat sich am Verhalten des Apachen mit Version 2.2 da etwas grundlegendes verändert? Gibt es eine Möglichkeit, daran etwas zu ändern, so dass die (wenn auch merkwürdige) Struktur der Webseite bestehen bleiben kann?

vevelt
Posts: 122
Joined: 2003-08-01 12:18
Location: Itzehoe

Problem GELÖST

Post by vevelt » 2007-08-22 09:23

Oh, sorry für die "Belästigung"... ich hatte im <verzeichnis1> eine .htaccess, die einige Rewrite-Regeln beinhaltete, um Grabber mit einem 403er abzufrühstücken. Da ich Rewrite jedoch noch nicht aktiviert hatte, hat der Apache dort implizit ein Forbidden geworfen, da die Optionen "-FollowSymLinks -SymLinksIfOwnerMatch" ein entsprechendes Rewrite verhindert hatten...

Nun läuft alles wie es soll... Trotzdem Danke an alle, die den Post gelesen haben... :-D