ein link wie
<a href="/foo/">
wird sich beziehenhttp://jeeves/foo/
und nicht wie gewünschthttp://jeeves/~sub/foo/
. […] Gibt es eine Möglichkeit, Apache dazu zu bringen, den / ~ sub / Teil der URL in jeder Hinsicht wie eine Unterdomäne zu behandeln (insbesondere Links)? Vielleicht eine Art BaseDir-Direktive?
Aber nicht der Apache kümmert sich hier um den Unterschied. Relative URLs wie diese /foo/
werden von Ihrem Webbrowser aufgelöst, und der Webbrowser kann nicht über die Apache-Einstellungen konfiguriert werden. Solange die angegebene URL ein Pfad ist, der mit beginnt /
, wird der Webbrowser sie immer als relativ zur Domänenbasis behandeln.
Der Betrieb eines dedizierten DNS-Servers scheint zu viel komplexer zu sein
Du bist wahrscheinlich auf einem dedizierten DNS - Server angewiesen jetzt um die zu lösen jeeves
Namen - und es wahrscheinlich in Ihrem Home - Router ausgeführt wird, und der vollständige Name ist wahrscheinlich jevees.lan.
oder jeeves.home.
oder so ähnlich. (Clientgeräte lernen das Suffix über DHCP.)
Wenn Sie Glück haben, wird der Router können Sie benutzerdefinierten statischen Host - Namen hinzuzufügen, wie sub.lan.
, und wenn Sie sind sehr glücklich, könnte es sogar erlauben, Third-Level - Domains hinzuzufügen, wiesub.jeeves.lan.
Wenn der interne DNS-Server des Routers nicht flexibel genug ist oder die lokale Namensauflösung überhaupt nicht DNS-basiert ist, haben Sie meistens kein Glück. Führen Sie Ihren eigenen DNS aus.
Einige Leute haben Domänennamen eingerichtet, die auf magischen DNS-Servern gehostet werden, die <anything>.x.y.z.t.<somedomain>
in die IP-Adresse übersetzt werden x.y.z.t
. (Ich weiß nicht, welche spezifischen Domain-Namen derzeit existieren, aber xip.io war früher eine Sache.)
Ein potenzielles Problem bei dieser Problemumgehung - wie auch beim Kauf einer eigenen Domäne - besteht darin, dass die meisten Heimrouter DNS-Antworten, die von außen kommen, einfach blockieren und in eine "interne" IP-Adresse auflösen. (Dies wird als "DNS-Wiederherstellungsschutz" bezeichnet.)