expertenaustausch > comm.software.* > comm.software.webserver

Christian Machmeier (25.02.2005, 17:20)
Hallo NG!

Ich konfigurier' gerade unseren Indianer (1.3.33) und setze mich das
erste Mal so richtig mit Virtualhosts und mod_rewrite auseinander.
Mittlerweile bin ich auch schon so weit gekommen, dass eigentlich alles
funktioniert, nur vielleicht nicht so, wie ich mir das denke. Aber das
macht auch nix, mach' ich eins nach dem anderen.

Ich steuere mod_rewrite im Moment durch eine .htaccess-Datei, die in der
document_root eines Virtualhost's liegt. Nun ist der Mainserver in der
httpd.conf mit

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

konfiguriert. Diese Einstellungen sollten ja global gültig sein (AFAIK),
also auch für alle Virtualhosts gelten, daher nahm ich an, dass ich
einfach eine .htaccess (mit meinen rewrite-Anweisungen) in eine
Virtualhost-document_root packen könnte und diese dann dort auch
interpretiert wird: Das ist bedauerlicherweise nicht der Fall. Füge ich
jedoch jeder einzelnen Virtualhost-Direktive

<Directory "/srv/www/der/jeweilige/pfad/zum/virtual/host/htdocs">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

hinzu, dann funktioniert alles wie gewünscht. Sonderlich einleuchtend
finde ich das nun aber eigentlich nicht. Weiss jemand rat?

mfg > christian machmeier
André Malo (25.02.2005, 17:30)
* Christian Machmeier wrote:

> <Directory "/srv/www">
> Options Indexes FollowSymLinks MultiViews
> AllowOverride All
> Order allow,deny
> Allow from all
> </Directory>
> konfiguriert. Diese Einstellungen sollten ja global gültig sein (AFAIK),


Ja.

[..]
> </Directory>
> hinzu, dann funktioniert alles wie gewünscht. Sonderlich einleuchtend
> finde ich das nun aber eigentlich nicht. Weiss jemand rat?


Da wäre vermutlich noch die restliche Konfiguration interessant. Gibts
vielleicht noch mehr Directory-Container oder Includes, die du übersehen
hast?

nd
Christian Machmeier (25.02.2005, 18:03)
Hallo André!

> Da wäre vermutlich noch die restliche Konfiguration interessant. Gibts
> vielleicht noch mehr Directory-Container oder Includes, die du übersehen
> hast?


Also in der virtualhosts.conf, die die ich schon erwähnt hab'. Ansonsten
hab' ich der httpd.conf nach dem Kompilieren nicht viel hinzugefügt. Die
Virtualhosts hab' ich ausgelagert und binde sie mit "Include
conf/virtualhosts.conf" ein. Also mal von oben nach unten:

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory "/srv/www">
.... (wie bereits erwähnt)
</Directory>

<Directory "/srv/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

<Location /server-status>
....
</Location>

<Location /server-info>
....
</Location>

Das war's. Die virtualhosts.conf beginnt mit:

NameVirtualHost *
<Virtualhost *>
ServerName webserv.local
ServerAdmin webmaster
DocumentRoot /srv/www
</VirtualHost>

Darauf folgen alle Virtualhost-Einträge, wie bereits beschrieben.

mfg > christian machmeier
Timo Kissing (25.02.2005, 18:27)
Christian Machmeier artikulierte sich wie folgt:

[mod_rewrite-Problem]

Kannst du mal eine vhost-Direktive posten? Und welcher Fehler tritt denn
ohne die directory-Direktive auf?

lino
Christian Machmeier (28.02.2005, 12:27)
Hallo Timo!

> Kannst du mal eine vhost-Direktive posten? Und welcher Fehler tritt denn
> ohne die directory-Direktive auf?


So mal exemplarisch ein Beispiel inklusive Virtualhost-Direktive:

<Virtualhost *>
ServerName web1.local
ServerAdmin webmaster
DocumentRoot /srv/www/der/jeweilige/pfad/zum/vhost/htdocs

<Directory "/srv/www/der/jeweilige/pfad/zum/vhost/htdocs">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

Ohne die Directory-Direktive bekomme ich für die jeweilige (Sub-)Domain
einen 404er, da ich versuche auf ein Verzeichnis zuzugreifen, das
physikalisch nicht existiert. Für z.B. wird
mod_rewrite (gar nicht oder) nicht kokrrekt ausgeführt. Kommentiere ich
die obige Directory-Direktive wieder ein kann mod_rewrite obige URL
ausflösen und mein PHP-Skript wird korrekt mit den erwarteten Parametern
aufgerufen, sprich die Seite wird doch gefunden, obwohl sie eigentlich
gar nicht existiert.

mfg > christian
Timo Kissing (28.02.2005, 19:15)
Christian Machmeier meinte:

[..]
> ausflösen und mein PHP-Skript wird korrekt mit den erwarteten Parametern
> aufgerufen, sprich die Seite wird doch gefunden, obwohl sie eigentlich
> gar nicht existiert.


Irgendwie schreibst du wirr, also frag ich genauer:
Ohne die zusätzlichen Directory-Direktive...
.... ergibt welchen Response-Header? Und wie ist der
Inhalt von /srv/www/pfad/zu/docroot/von/web1.local?
.... ergibt welchen Response-Header? Und was
steht in deiner .htaccess?

Mit der zusätzlichen Directory-Direktive...
.... ergibt welchen Response-Header? Und wie ist der
Inhalt von /srv/www/pfad/zu/docroot/von/web1.local?
.... ergibt welchen Response-Header? Und was
steht in deiner .htaccess?

lino
Christian Machmeier (03.03.2005, 12:59)
Hallo Timo!

> Irgendwie schreibst du wirr, also frag ich genauer:


??? Welche Information fehlt dir denn? S.o.

> Ohne die zusätzlichen Directory-Direktive...
> ... ergibt welchen Response-Header? Und wie ist der


Date: Thu, 03 Mar 2005 10:55:08 GMT
Server: Apache/1.3.33 (Unix) PHP/4.3.10 mod_ssl/2.8.22 OpenSSL/0.9.7e
X-Powered-By: PHP/4.3.10
P3P: CP="NOI NID ADMa OUR IND UNI COM NAV"
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

200 OK

> Inhalt von /srv/www/pfad/zu/docroot/von/web1.local?


index.php

> ... ergibt welchen Response-Header? Und was


Wie oben bereits erwähnt, erhalte ich einen 404er.

> steht in deiner .htaccess?


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule
^([Kk][Aa][Tt][Aa][Ll][Oo][Gg])/([[:alnum:]]+)/(5[1-3])/*$
index\.php?page=katalog\&subpage=$2\&country=$3 [L,R]
</IfModule>

hth > christian
Ähnliche Themen