mod_vhost_alias

Alles, was den Apache betrifft, kann hier besprochen werden.

mod_vhost_alias

Postby heinetz » 18. January 2009 12:10

Hallo Forum,

ich habe ein kleines Problem mit meiner httpd-vhosts.conf

Code: Select all
NameVirtualHost *:80
NameVirtualHost *:443

<Directory "/Users/martinhein/Sites">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    UseCanonicalName off
    servername %1.leopold.net
    VirtualDocumentRoot /Users/martinhein/Sites/%1
</VirtualHost>

<VirtualHost *:443>
    UseCanonicalName off
    servername %1.leopold.net
    VirtualDocumentRoot /Users/martinhein/Sites/%1
   
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /Applications/xampp/etc/ssl.crt/server.crt
    SSLCertificateKeyFile /Applications/xampp/etc/ssl.key/server.key
</VirtualHost>

<VirtualHost *:80>
    ServerName localhost
    ServerAlias leopold   
    DocumentRoot "/Applications/xampp/xamppfiles/htdocs"
</VirtualHost>


Alle Anfrage von vhosts nach dem Muster http://<verzeichnis_name>.leopold.net zeigen
auf den entsprechenden Inhalt unter:

/Users/martinhein/Sites/<verzeichnis_name>,

Anfrage von http://localhost und http://leopold zeigen auf den Inhalt unter:

/Applications/xampp/xamppfiles/htdocs

Soweit sogut. Wie sorge ich dafür, dass alle anderen Anfrage auch immer auf:

/Applications/xampp/xamppfiles/htdocs

... zeigen ?

danke für Tipps und

beste gruesse,
heinetz
heinetz
 
Posts: 88
Joined: 02. January 2004 12:37

Re: mod_vhost_alias

Postby Nobbie » 18. January 2009 15:30

Der erste VirtualHost-Eintrag ist der Default-Eintrag, wenn keiner der nachfolgenden VirtualHost-Einträge den ServerName matcht. Also einfach einen Dummy-Eintrag an den Anfang setzen mit beliebigem ServerName ("default" o.ä.) und dort den gewünschten DocumentRoot angeben.

Da das der gleiche DocumentRoot wie von localhost ist, kannst Du auch einfach den localhost-Eintrag nach oben holen und den Dummy sparen.
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Re: mod_vhost_alias

Postby heinetz » 18. January 2009 18:12

Nobbie wrote:Der erste VirtualHost-Eintrag ist der Default-Eintrag, wenn keiner der nachfolgenden VirtualHost-Einträge den ServerName matcht.Also einfach einen Dummy-Eintrag an den Anfang setzen mit beliebigem ServerName ("default" o.ä.) und dort den gewünschten DocumentRoot angeben.

Da das der gleiche DocumentRoot wie von localhost ist, kannst Du auch einfach den localhost-Eintrag nach oben holen und den Dummy sparen.


Das wäre logisch und funktioniert auch genauso, wenn ich statt des dynamischen Teils
einen oder zwei statische vhosts unterhalb des default definiere:

Code: Select all
NameVirtualHost *:80
NameVirtualHost *:443

<Directory "/Users/martinhein/Sites">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    ServerName localhost
    ServerAlias leopold   
    DocumentRoot "/Applications/xampp/xamppfiles/htdocs"
</VirtualHost>
 
<VirtualHost *:80>
    ServerName test.leopold.net
    DocumentRoot /Users/martinhein/Sites/test
</VirtualHost>


Jede Anfrage, die irgedwie auf den Server zeigt (localhost, 127.0.0.1, rechnername, netzwerk-ip) zeigt auf den
als default eingerichteten vhost, AUSSER der Servename matcht bei einem anderen vhost. Wenn ich's statt des
dessen aber dynamisch halten will:

Code: Select all
NameVirtualHost *:80
NameVirtualHost *:443

<Directory "/Users/martinhein/Sites">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    ServerName localhost
    ServerAlias leopold   
    DocumentRoot "/Applications/xampp/xamppfiles/htdocs"
</VirtualHost>
 
<VirtualHost *:80>
    UseCanonicalName off
    servername %1.leopold.net
    VirtualDocumentRoot /Users/martinhein/Sites/%1
</VirtualHost>


... zeigen alle Anfragen auf den default. Der dynamische Teil unterhalb des default definiert,
matcht also nicht mehr, obwohl er's ja tut, wenn er, wie bei mir als estes definiert wird.

aber Danke trotzdem für Deinen Tipp,
heinetz
heinetz
 
Posts: 88
Joined: 02. January 2004 12:37

Re: mod_vhost_alias

Postby Nobbie » 18. January 2009 18:51

Hast Du auch mal

Code: Select all
UseCanonicalName On


oder ggf.

Code: Select all
UseCanonicalName DNS


probiert? Wieso hast Du überhaupt auf "off" gestellt?
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Re: mod_vhost_alias

Postby heinetz » 18. January 2009 20:43

nein, das hab ich noch nicht. ich hab mir das aus irgend einem beispiel rauskopiert
und abgeändert. dann war ich erstmal nur froh, dass es funktionierte, wie ich wollt

Bei der ganzen Testerei jetzt bekomme ich übrigens auch mal wieder das gefühl,
hier wird irgendwas gecachet und ich meine nicht den browsercache. kann das
sein ?

so, nochmal:

Ich habe jetzt zum Test zwei weitere Verzeichnisse in mein Userverzeichnis
gelegt. Neben 'test' gibt es dort nun 'testzwei' und 'testdrei'.

Meine httpd-vhosts.conf
Code: Select all
NameVirtualHost *:80
NameVirtualHost *:443

<Directory "/Users/martinhein/Sites">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    ServerName localhost
    ServerAlias leopold   
    ServerAlias 127.0.0.1   
    DocumentRoot "/Applications/xampp/xamppfiles/htdocs"
</VirtualHost>

<VirtualHost *:80>
    VirtualDocumentRoot /Users/martinhein/Sites/%1
</VirtualHost>

<VirtualHost *:443>
    VirtualDocumentRoot /Users/martinhein/Sites/%1
   
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /Applications/xampp/etc/ssl.crt/server.crt
    SSLCertificateKeyFile /Applications/xampp/etc/ssl.key/server.key
</VirtualHost>


Nur die Eingabe von http://testzwei.leopold.net/ zeigt auf den richtigen Inhalt.
http://test.leopold.net/ und http://testdrei.leopold.net/ zeigen auf das DocumentRoot,
als wären sie nicht vorhanden. Was so vollkommen korrekt wäre, wenn sie tatsächlich
nicht vorhanden wären.

Anders herum und mit UseCanonicalName On:
Code: Select all
NameVirtualHost *:80
NameVirtualHost *:443

<Directory "/Users/martinhein/Sites">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    UseCanonicalName On
    VirtualDocumentRoot /Users/martinhein/Sites/%1
</VirtualHost>

<VirtualHost *:443>
    VirtualDocumentRoot /Users/martinhein/Sites/%1
   
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /Applications/xampp/etc/ssl.crt/server.crt
    SSLCertificateKeyFile /Applications/xampp/etc/ssl.key/server.key
</VirtualHost>

<VirtualHost *:80>
    ServerName localhost
    ServerAlias leopold   
    ServerAlias 127.0.0.1   
    DocumentRoot "/Applications/xampp/xamppfiles/htdocs"
</VirtualHost>


... zeigen http://test.leopold.net/ und http://testdrei.leopold.net/ auf den Inhalt von
http://testzwei.leopold.net/. Das Verhalten scheint ähnlich, aber ich habe mir /etc/hosts
nochmal angesehen, die beiden Verzeichnisse nochmal angesehen und kann keinen
Unterschied feststellen.

Da kann mir sicher niemand was dazu sagen, oder?

beste gruesse,
heinetz
heinetz
 
Posts: 88
Joined: 02. January 2004 12:37


Return to Apache

Who is online

Users browsing this forum: No registered users and 20 guests