Matt: VirtualHosts

Hallo zusammen,

ich benutze den Apache als Webserver und hätte eine Frage zu den VirtualHosts.

Nehmen wir an der Windows-Server hat die IP 111.222.333.444

jetzt sollen alle ankommenden Anfragen z.B. von "www.xyz.de" in ein Verzeichnis geleitet werden. Alle anderen in ein Standard Verzeichnis.

Mein bisherige Versuch:

xyz

NameVirtualHost 111.222.333.444:80

<VirtualHost 111.222.333.444:80>
  ServerName www.xyz.de
  DocumentRoot "X:/htdocs/xyz"
</VirtualHost>

default

NameVirtualHost 111.222.333.444:80

<VirtualHost 111.222.333.444:80>
  ServerName *
  DocumentRoot "X:/htdocs/xyz"
</VirtualHost>

www.xyz.de funktioniert einwandfrei. Nur der "default" spielt nicht mit.

Hat jemand eine Idee? "default" scheint nicht korrekt zu sein ;-)

Herzlichen Dank,
Matt

  1. Moin!

    www.xyz.de funktioniert einwandfrei. Nur der "default" spielt nicht mit.

    Hat jemand eine Idee? "default" scheint nicht korrekt zu sein ;-)

    Die Antwort kann ich schon lesen, wenn ich mir nur die erste Google-Suchergebnisseite angucke...

    http://www.google.com/search?client=opera&rls=en&q=apache+default+vhost&sourceid=opera&ie=utf-8&oe=utf-8

    Das zeugt von GANZ WENIG Eigeninitiative.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Danke für deine Hilfe.

      Die Antwort kann ich schon lesen, wenn ich mir nur die erste Google-Suchergebnisseite angucke...

      http://www.google.com/search?client=opera&rls=en&q=apache+default+vhost&sourceid=opera&ie=utf-8&oe=utf-8

      Das zeugt von GANZ WENIG Eigeninitiative.

      Das stimmt so nicht. Ich hatte gesucht, aber wohl falsch.

      Ich scheine das trotzdem falsch zu verstehen.

      <VirtualHost _default_:80>
        DocumentRoot "X:/htdocs/main"
      </VirtualHost>

      NameVirtualHost 111.222.333.444:80

      <VirtualHost 111.222.333.444:80>
        ServerName www.xyz.de
        DocumentRoot "X:/htdocs/xyz"
      </VirtualHost>

      Der "default" funktioniert trotzdem nicht. Ich werde trotzdem immer in /htdocs/xyz/ geleitet.

      1. Moin!

        Das zeugt von GANZ WENIG Eigeninitiative.
        Das stimmt so nicht. Ich hatte gesucht, aber wohl falsch.

        Davon war weder etwas zu merken, noch etwas zu lesen in deinem Posting.

        Ich scheine das trotzdem falsch zu verstehen.

        Das hier z.B.: http://httpd.apache.org/docs/1.3/vhosts/examples.html#purename

        <VirtualHost _default_:80>
          DocumentRoot "X:/htdocs/main"
        </VirtualHost>

        NameVirtualHost 111.222.333.444:80

        <VirtualHost 111.222.333.444:80>
          ServerName www.xyz.de
          DocumentRoot "X:/htdocs/xyz"
        </VirtualHost>

        Der "default" funktioniert trotzdem nicht. Ich werde trotzdem immer in /htdocs/xyz/ geleitet.

        Was sagt der configtest zu deiner Konfiguration?

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Das hier z.B.: http://httpd.apache.org/docs/1.3/vhosts/examples.html#purename

          <VirtualHost _default_:80>
            DocumentRoot "X:/htdocs/main"
          </VirtualHost>

          NameVirtualHost 111.222.333.444:80

          <VirtualHost 111.222.333.444:80>
            ServerName www.xyz.de
            DocumentRoot "X:/htdocs/xyz"
          </VirtualHost>

          Ich habe es jetzt in folgendes geändert:

          NameVirtualHost 111.222.333.444:80

          <VirtualHost 111.222.333.444:80>
            ServerName 111.222.333.444
            DocumentRoot "X:/htdocs/main"
          </VirtualHost>

          <VirtualHost 111.222.333.444:80>
           ServerName www.xyz.de
           DocumentRoot "X:/htdocs/xyz"
          </VirtualHost>

          und jetzt habe ich genau das was ich wollte.
          Ist das der korrekte Weg?

          Mir scheint so, als das der Server feststellt dass der VirtualHost nicht angelegt ist und dann einfach auf den ersten VirtualHost verweist?

          Der configtest bringt keine Fehlermeldung.

          Danke.

          1. Moin!

            Mir scheint so, als das der Server feststellt dass der VirtualHost nicht angelegt ist und dann einfach auf den ersten VirtualHost verweist?

            So stehts in jeder Beschreibung drin: Wenn kein passender VHost gefunden wird, wird der erste VHost genommen.

            - Sven Rautenberg

            --
            "Love your nation - respect the others."
            1. Hi Sven,

              Mir scheint so, als das der Server feststellt dass der VirtualHost nicht angelegt ist und dann einfach auf den ersten VirtualHost verweist?
              So stehts in jeder Beschreibung drin: Wenn kein passender VHost gefunden wird, wird der erste VHost genommen.

              Wäre es dann sinnvoll einfach den Default ganz oben hin zu schreiben? Weißt du wozu es einen default gibt, wenn er doch den ersten benutzt oder ist das genau der Plan, dass der default immer oben steht? (Habe es nur zufällig richtig gemacht, deswegen mein nachhaken)

              ciao
              romy

              1. Moin!

                Mir scheint so, als das der Server feststellt dass der VirtualHost nicht angelegt ist und dann einfach auf den ersten VirtualHost verweist?
                So stehts in jeder Beschreibung drin: Wenn kein passender VHost gefunden wird, wird der erste VHost genommen.
                Wäre es dann sinnvoll einfach den Default ganz oben hin zu schreiben? Weißt du wozu es einen default gibt, wenn er doch den ersten benutzt oder ist das genau der Plan, dass der default immer oben steht? (Habe es nur zufällig richtig gemacht, deswegen mein nachhaken)

                Wenn ein Apache-Server, der namensbasierte virtuelle Hosts anbietet, zu der im HTTP-Host-Header genannten Domain keinen Konfigurationseintrag findet, wird der erste konfigurierte VHost verwendet.

                Du hast gar keine Möglichkeit, den Defaulthost irgendwo anders hinzuschreiben, denn es gibt keine Möglichkeit, einen VHost-Eintrag als Default zu kennzeichnen.

                - Sven Rautenberg

                --
                "Love your nation - respect the others."