der Name des Threads sagt eigentlich alles: wie kann ich auf meinem localhost Subdomains einrichten (z.B. local.localhost, web.localhost)? Und ist es möglich, Default-Subdomains anzulegen? Am Besten verschiedene Subdomains für verschiedene IPs (z.B. dass ich standardmäßig auf local.localhost umgeleitet werde, aber Zugriffe aus dem Internet auf web.localhost geleitet werden)?
der Name des Threads sagt eigentlich alles: wie kann ich auf meinem localhost Subdomains einrichten (z.B. local.localhost, web.localhost)? Und ist es möglich, Default-Subdomains anzulegen? Am Besten verschiedene Subdomains für verschiedene IPs (z.B. dass ich standardmäßig auf local.localhost umgeleitet werde, aber Zugriffe aus dem Internet auf web.localhost geleitet werden)?
...
localhost und IP's haben nichts mit dem Domain Name-System zu tun. Apache kann mit einem Mixup aus (Sub)Domain und IP nichts anfangen.
Soweit ich weiß ist "localhost" keine wirkliche Domain, es ist lediglich eine systeminterne Umschreibung der IP 127.0.0.1, dementsprchend lässt sich damit auch kein Subdomain-vHost einrichten. Du könntest aber Port/IP-Basierte vHosts einrichten.
Denk dabei nur dran Dem Apache zu sagen an welchen ports er lauschen soll mit der "Listen" Direktive. Das wird gerne vergessen und man schraubt dann stundenlang an Firewall und/oder Router rum.
Ob man anhand der Client-IP auf bestimmte vHosts umleiten kann, kann ich mir gut vorstellen, zumal es ja auch möglich ist den Zugriff von bestimmten IP's aus auf Apacheebene zu beschränken oder gar zu verbieten.
Vielleicht lässt sich da etwas mit der RewriteRule machen.
Du kannst (wenn du die Subdomain nur mit localhost und nicht übers Netzwerk mit deiner IP machen willst) in deine hosts-Datei einen Eintrag machen wie z.B.
Dann legst du in deiner Apache-Config einen vHost fest:
Wie gesagt funktioniert dann aber auch nur web.localhost - und nicht web.127.0.0.1 oder tennis.localhost. Für alle weiteren "Subdomains" musst du das alles wiederholen.
Achtung: Diese Idee und Anleitung sind ungestestet! Ich habe keine Ahnung, ob dadurch auch nur annährend der richtige Effekt erreicht wird, auch wenn es theoretisch so stimmt (oder?).
Du kannst (wenn du die Subdomain nur mit localhost und nicht übers Netzwerk mit deiner IP machen willst) in deine hosts-Datei einen Eintrag machen wie z.B.
Dann legst du in deiner Apache-Config einen vHost fest:
Wie gesagt funktioniert dann aber auch nur web.localhost - und nicht web.127.0.0.1 oder tennis.localhost. Für alle weiteren "Subdomains" musst du das alles wiederholen.
Achtung: Diese Idee und Anleitung sind ungestestet! Ich habe keine Ahnung, ob dadurch auch nur annährend der richtige Effekt erreicht wird, auch wenn es theoretisch so stimmt (oder?).
...
Hmh... interessant. Das könnte in der Tat eventuell funktionieren. Daran hab ich nicht gedacht.
EDIT: Nach etwas Überlegung bezweifle ichs dann doch.
Die Edit's in der host-Datei ersetzen ja eigentlich keinen Domainservce. Die host-Datei ersetzt beim Aufruf im Browser ja nur eine Adresse durch die zugeordnete IP, ich denke sie wird nicht die eingegebene Adresse an den Server übermitteln wordurch Apache auch nicht erkennen kann wie die Adresse lautete, er kennt nur die IP. Somit ist keine vHost Zuteilung möglich.
Nach etwas Überlegung bezweifle ichs dann doch.
Die Edit's in der host-Datei ersetzen ja eigentlich keinen Domainservce. Die host-Datei ersetzt beim Aufruf im Browser ja nur eine Adresse durch die zugeordnete IP, ich denke sie wird nicht die eingegebene Adresse an den Server übermitteln wordurch Apache auch nicht erkennen kann wie die Adresse lautete, er kennt nur die IP. Somit ist keine vHost Zuteilung möglich.
...
Ich kann nur aus Erfahrung sprechen (wow, dass ich sowas auch kann), aber es funktioniert. Wenn man auf einem Apache ein Verzeichnis ohne abschließendes / aufruft, wird man ja eigentlich weitergeleitet. Nun benutze ich normalerweise statt localhost die Adresse "a" (kürzer). Wenn ich dann eingebe "http://a/images" werde ich weitergeleitet auf "http://localhost/images/", weil in der Config als ServerName localhost angegeben ist. Mit dem vHost a habe ich das Problem lösen können:
Und a ist ja genau wie localhost in der hosts definiert. Demnach müsste das auch funktionieren.
@masterquest: Dann richte es so ein, dass beim Aufruf von localhost die Daten verfügbar sind, die im Internet veröffentlicht werden sollen, und unter bla.localhost alles andere ist (oder was weiß ich was du statt bla haben möchtest). Mit meiner Idee sollte das so gehen.
blahfasel ... ich denke sie wird nicht die eingegebene Adresse an den Server übermitteln wordurch Apache auch nicht erkennen kann wie die Adresse lautete, er kennt nur die IP. Somit ist keine vHost Zuteilung möglich.
...
Ich habe bei mir in der Hosts Datei codey.datenklo.net auf 127.0.0.1 gebunden und Apache zeigt mir als ServerName codey.datenklo.net an.. Und über localhost eben ServerName localhost.
Die Hosts Datei kann man auch prima für andere Sachen missbrauchen. x)
Z.B. forum.rpg-ring.com auf die IP von forum.worldofplayers.net binden - so muss ich keine Bookmarks ändern.
Erstmal danke, ich werd's mal versuchen. Mir geht's eigentlich drum, dass ich eine Subdomain habe, auf die ich die ganzen Dateien packe, die vom Internet aus verfügbar sein sollen, und auf eine andere den ganzen Rest. Das ist das Wesentliche. Zudem fände ich es gut, wenn ich es so einrichten kann, dass eine Subdomain automatisch aufgerufen wird, wenn keine angegeben wird. Der Idealfall wäre, dass ich diese Default-Subdomain über die IP steuern kann, aber das muss nicht sein.
Funktioniert soweit, aber jetzt muss ich immer local.localhost eintippen, wenn ich auf meine lokalen Dateien zugreifen will. Kann man das nicht so ändern, dass ich da nur localhost eintippen muss und dass das Ganze auf local.localhost weitergeleitet wird?
Sry dass ich nochmal pushe, aber ich wollte keinen eigenen Thread dafür aufmachen.
Ich will jetzt evtl. meinen Server ans Netz hängen (DynDNS) udn auf dem Server ein paar Subdomains haben, auf die man von überall zugreifen kann. Wie kriege ich dass hin? Oder muss ich mir dafür 'nen Nameserver aufsetzen?
DynDNS leitet AFAIK deine-domain.dyndns.org & *.deine-domain.dyndns.org auf deine IP um.
Ein VHost-Eintrag sollte also genügen.
Nicht vergessen, evtl. Port Forwarding beim Router zu aktivieren. Außerdem kannst du oft nicht "von innen" (also aus deinem LAN) auf die DynDNS-Adresse zugreifen. Stattdessen nimmst du dann die interne IP (z.B. 192.168.0.20).
Dann brauchst du tatsächlich 'nen Nameserver im lokalen Netz oder du trägst diese Subdomains in die Host-Datei auf allen Clients, von denen du zugreifen willst, ein.
Eine andere Möglichkeit sehe ich momentan nicht, lasse mich aber auch gern belehren.
Dann brauchst du tatsächlich 'nen Nameserver im lokalen Netz oder du trägst diese Subdomains in die Host-Datei auf allen Clients, von denen du zugreifen willst, ein.
...
Das Lokalnetz dürfte bei mq wohl nicht allzu groß sein, also sollte hosts durchaus brauchbar sein. Ich mache das bei mir auch so und bin an sich ganz zufrieden damit.
Man muß nur aufpassen, daß man das nicht bei Rechnern macht, die sich auch außerhalb des LANs befinden könnten, beispielsweise bei Laptops. Oder man macht sich mehrere hosts-Versionen, die man bei Bedarf tauscht.
@Codec: Gute Idee, dann muß ich nicht jetzt alles ändern und dann beim nächsten Domainwechsel gleich wieder.