a link like
<a href="/foo/">
will refer tohttp://jeeves/foo/
and not as desired tohttp://jeeves/~sub/foo/
. […] Is there any way to make Apache treat the /~sub/ part of the URL like a subdomain for all intents and purposes (links in particular)? Some kind of BaseDir directive, maybe?
Mas não é o Apache que se importa com a diferença aqui. URLs relativos como /foo/
são resolvidos pelo seu navegador, e o navegador da web não pode ser configurado pelas configurações do Apache. Desde que o URL fornecido seja um caminho que comece com /
, o navegador da Web sempre o tratará como relativo à base de domínio.
running a dedicated DNS server seems like too much added complexity
Você provavelmente está confiando em um servidor DNS dedicado agora para resolver o jeeves
name - e provavelmente ele está sendo executado dentro de seu roteador doméstico, e o nome completo provavelmente é jevees.lan.
ou jeeves.home.
ou algo parecido. (Dispositivos cliente aprendem o sufixo via DHCP.)
Se tiver sorte, o roteador permitirá que você adicione nomes de host estáticos personalizados, como sub.lan.
, e se tiver sorte muito , pode até mesmo permitir que você adicione domínios de terceiro nível, como sub.jeeves.lan.
Se o servidor DNS interno do roteador não for flexível o suficiente, ou se a resolução de nomes local não for baseada em DNS, você estará sem sorte. Execute seu próprio DNS.
Algumas pessoas configuraram nomes de domínio hospedados em servidores DNS 'mágicos', que convertem <anything>.x.y.z.t.<somedomain>
no endereço IP x.y.z.t
. (Eu não sei o que nomes de domínio específicos existem atualmente, mas xip.io costumava ser uma coisa.)
Um possível problema com essa solução alternativa - assim como com a compra de seu próprio domínio - é que a maioria dos roteadores domésticos simplesmente bloqueia as respostas do DNS que vêm de fora, mas resolvem um endereço IP "interno". (Isso é chamado de "proteção de religação de DNS").