Настройка доменов с подстановочными знаками на локальном хосте (OS X 10.5)?
-
22-08-2019 - |
Вопрос
Я начинаю разрабатывать сайт, который по сути действует как WordPress MU, в том смысле, что пользователь может зарегистрироваться и иметь собственный блог.Я буду писать код на Rails, однако надеюсь, что смогу использовать поддомены с подстановочными знаками, поэтому я смогу использовать такой формат, как blog.example.com.Я немного поискал, но не нашел хороших ресурсов.
Поскольку я использую Rails, я не знаю, куда это поместить, поскольку я использую Mongrel, а не Apache.Я могу обойти это на своем локальном компьютере, разработав удаленно на своем сервере, однако я хотел бы оставить это только в крайнем случае.
При необходимости я могу предоставить более подробную информацию о своей среде разработки, но вот основные сведения:
- Mac OS X Леопард 10.5.6
- Рубин 1.8.7
- Рельсы 2.3.2
Решение
Строго говоря, это невозможно сделать в файле хостов (по крайней мере, в OS X).Это поведение можно смоделировать с помощью Firefox, настроив его на использование сценария автонастройки прокси.
Создайте файл со следующим javascript (я использую ~/.proxy.pac)
function FindProxyForURL(url, host) {
if (shExpMatch(host,"*.<YOUR_DOMAIN>")) {
//alert("proxy local")
return "PROXY localhost";
}
//alert("proxy direct")
return "DIRECT";
}
Затем в Firefox > Настройки > Дополнительно > Сеть > Настройки...> URL-адрес автоматической настройки прокси:
file:///Users/USERNAME/.proxy.pac
Никогда не пробовал это в Safari, но он также поддерживает файлы PAC, так что, возможно, это работает...
Единственная альтернатива, которую я знаю, — это настроить полноценный DNS-сервер на вашем компьютере…
Другие советы
Мне не удалось заставить код Ника работать со стандартной установкой localhost:3000, на которой работает Ruby on Rails на Max OSX 10.5.8.Итак, я изменил функцию на следующую.Теперь это позволяет мне перейти к http://локальный хост/ и http://foo.localhost/ (а также игнорирует порт)
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*localhost")) {
return "PROXY localhost:3000";
}
return "DIRECT";
}
Интересно - www.localhost работал не так хорошо - Firefox хотел перенаправить на www.localhost.com.Что-то, о чем следует знать.
У меня была такая же проблема, и оказалось, что запустить именованный запуск на OSX довольно легко (он уже предустановлен!) Проверить http://mikeferrier.ca/2011/04/04/setting-up-wildcard-dns-on-localhost-domains-on-osx/ для инструкций.
Это прекрасно работает, лучшее решение для тестирования поддоменов на локальном хосте.сравните с тем, как я использовал рубиновый призрачный камень.