ссылка, как
<a href="/foo/">
будет ссылаться,http://jeeves/foo/
а не как хотелось быhttp://jeeves/~sub/foo/
. […] Есть ли способ заставить Apache обрабатывать / ~ sub / часть URL-адреса как поддомен для всех намерений и целей (в частности, для ссылок)? Может быть, какая-то директива BaseDir?
Но не Apache заботится о разнице здесь. Относительные URL-адреса, например /foo/
, разрешаются вашим веб-браузером, и веб-браузер не может быть настроен с помощью параметров Apache. Пока предоставленный URL-адрес - это путь, который начинается с /
, веб-браузер всегда будет относиться к нему как к базе домена.
запуск выделенного DNS-сервера кажется слишком сложным
Вы, вероятно, опираясь на выделенный сервер DNS прямо сейчас для того, чтобы разрешить jeeves
имя - и это, вероятно, работает внутри вашего домашнего маршрутизатора, а также полное имя, вероятно, jevees.lan.
или, jeeves.home.
или что - то подобное. (Клиентские устройства изучают суффикс через DHCP.)
Если вам повезет, маршрутизатор позволит вам добавить пользовательские статические имена хостов, такие как sub.lan.
, а если вам очень повезет, он может даже позволить вам добавить домены третьего уровня, такие какsub.jeeves.lan.
Если внутренний DNS-сервер маршрутизатора недостаточно гибок или локальное разрешение имен вообще не основано на DNS, то в большинстве случаев вам не повезло. Запустите свой собственный DNS.
Некоторые люди настраивают доменные имена, размещенные на «волшебных» DNS-серверах, которые переводят <anything>.x.y.z.t.<somedomain>
в IP-адрес x.y.z.t
. (Я не знаю, какие конкретные доменные имена существуют в настоящее время, но раньше был xip.io.)
Одна потенциальная проблема с этим обходным путем - а также с покупкой собственного домена - состоит в том, что большинство домашних маршрутизаторов просто блокируют ответы DNS, которые приходят извне, но разрешаются на «внутренний» IP-адрес. (Это называется «защита повторного связывания DNS».)