Я хочу настроить свою локальную машину разработки так, чтобы любые запросы *.local
перенаправлялись на localhost
. Идея состоит в том, что когда я разрабатываю несколько сайтов, я могу просто добавить vhosts в вызываемый Apache site1.local
и site2.local
т. Д., И разрешить им все разрешить localhost
, в то время как Apache соответственно обслуживает другой сайт.
Я на Windows XP.
Я пытался добавить
127.0.0.1 *.local
к моему c:\windows\system32\drivers\etc\hosts
файлу тоже пробовал:
127.0.0.1 .local
Ни один из которых, кажется, не работает.
Я знаю, что могу установить их на разных номерах портов, но это очень сложно, так как трудно вспомнить, какой порт какой.
Я не хочу настраивать локальный DNS-сервер или что-то сложное, какие-либо предложения?
Ответы:
Акриловый DNS Proxy (бесплатный, с открытым исходным кодом) делает свою работу. Он создает прокси-сервер DNS (на вашем собственном компьютере) со своим собственным файлом hosts. Файл hosts принимает подстановочные знаки.
Скачать с официального сайта
http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home
Настройка Acrylic DNS Proxy
Чтобы настроить Acrylic DNS Proxy, установите его по приведенной выше ссылке, затем перейдите по ссылке:
Добавьте следующие строки в конце файла:
Перезапустите сервис Acrylic DNS Proxy:
Вам также необходимо изменить настройки DNS в настройках сетевого интерфейса:
Установите «Использовать следующий адрес DNS-сервера»:
Если вы затем объедините этот ответ с ответом jeremyasnyder (используя
VirtualDocumentRoot
), вы можете автоматически настроить домены / виртуальные хосты, просто создав каталог.источник
PrimaryServerAddress
в конфигурации (а не в файле hosts) следует изменить значение8.8.8.8
по умолчанию на то, которое предоставляет хост. В VirtualBox это так10.0.2.3
.Чтобы ответить на ваш вопрос, вы не можете использовать подстановочные знаки в файле hosts под Windows.
Однако, если вы хотите изменить только файл hosts, чтобы новые сайты работали .... вы можете настроить свой Apache следующим образом, и вам не нужно продолжать редактировать его конфигурацию:
http://postpostmodern.com/instructional/a-smarter-mamp/
По сути, краткая сводка, основанная на моих настройках, добавьте в файл apache.conf следующее:
Это позволяет мне добавить запись вроде:
а затем создайте каталог c: \ xampp \ sites \ dev \ test и поместите туда необходимые файлы, и он просто работает.
Другой вариант - использовать
<Directory>
теги в apache.conf и ссылаться на страницы из http: // localhost / project / .источник
Я не думаю, что это возможно.
В любом случае вам придется изменять записи виртуального корня apache каждый раз, когда вы добавляете новый сайт и местоположение, поэтому синхронизировать новое имя с файлом vhost Windows не составляет особого труда.
Обновление: пожалуйста, проверьте следующий ответ и комментарии к этому ответу. Этому ответу 6 лет, и он больше не правильный.
источник
ServerAlias *.mydomain.localhost
(*
являющимся кодом языка), так что вам не придется редактировать httpd.conf каждый раз, когда вы добавляете новый язык; но вам все равно нужно добавить поддомен в файл hosts, отсюда и актуальность вопроса выше.hosts
действительно только файлЧтобы добавить к замечательным предложениям уже здесь, XIP.IO - это фантастический DNS-сервер с подстановочными знаками, который доступен для всех.
(Возможность указывать адреса без обратной связи является фантастической для тестирования сайтов на устройствах iOS, где вы не можете получить доступ к файлу хостов.)
Если вы объедините это с некоторыми настройками Apache, упомянутыми в других ответах, вы можете потенциально добавить VirtualHosts с нулевой настройкой .
источник
Я нашел сообщение об использовании файла Windows Hosts котором также говорится: «Не допускаются подстановочные знаки».
Раньше я только добавлял дополнительные записи в файл hosts, потому что (как уже было сказано), это не так уж много дополнительной работы, когда вы уже редактируете конфигурационный файл apache.
источник
Редактирование файла hosts менее проблемно при запуске «ipconfig / flushdns» из командной строки Windows вместо перезагрузки компьютера.
источник
Вы можете попросить своего сетевого администратора настроить домен для вас (например, evilpuppetmaster.hell) и использовать там подстановочный знак, чтобы все (* .evilpuppetmaster.hell ') разрешалось по вашему IP.
источник
У нас это работает с использованием подстановочного DNS на нашем локальном DNS-сервере: добавьте
A
запись что-то вроде*.local -> 127.0.0.1
Я думаю, что в настройках вашей сети должен быть выбранный суффикс домена в списке поиска суффиксов домена для компьютеров в сети, поэтому вы можете заменить
.local
его внутренним доменом вашей компании (например.int
), а затем добавить субдомен,.localhost.int
чтобы сделать его понятным. для чего это.Таким образом,
*.localhost.int
будет разрешено127.0.0.1
для всех в сети, и настройки файла конфигурации для всех разработчиков будут "просто работать", если конечные точки зависают от этого субдомена, напримерsite1.localhost.int
,site2.localhost.int
Это в значительной степени схема, которую мы ввели.dnsmasq также выглядит красиво, но я еще не пробовал: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/
источник
Я написал простой DNS-прокси в Python. Он будет читать групповые записи в / etc / hosts. Смотрите здесь: http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsproxy.py
Я тестировал в Linux и Mac OS X, но еще не в Windows.
источник
Вы можете попробовать AngryHosts , который предоставляет способ поддержки подстановочных знаков и регулярных выражений. На самом деле, это программное обеспечение для улучшения файлов и управления хостами.
Больше возможностей можно увидеть @ http://angryhosts.com/features/
источник
Я использую DNSChef, чтобы сделать это.
https://thesprawl.org/projects/dnschef/
Вы должны загрузить приложение, в Linux или Mac вам нужен Python для его запуска. У Windows есть свой собственный exe.
Вы должны создать INI-файл с вашими записями DNS, например
Затем вы должны запустить приложение DNS с правами администратора
или в окнах
Наконец, вам нужно настроить в качестве единственного DNS локальную хост-среду (сеть, интерфейс, DNS или аналогичную или в linux /etc/resolv.conf).
это оно
источник
Я сделал этот простой инструмент, чтобы занять место хозяев. Регулярные выражения поддерживаются. https://github.com/stackia/DNSAgent
Пример конфигурации:
источник
Я не смог найти запрет на запись, но по соглашению файл хостов Windows близко следует файлу хостов UNIX, и вы не можете помещать в этот файл ссылки на имена хостов с подстановочными знаками.
Если вы читаете справочную страницу, там написано:
Хотя это говорит,
это не так с практической точки зрения.
По сути, код, который просматривает файл / etc / hosts, не поддерживает подстановочный знак.
Обходной путь заключается в том, чтобы создать все записи заранее, возможно, использовать скрипт, чтобы поместить пару сотен записей одновременно.
источник
@petah и Acrylic DNS Proxy - лучший ответ, и в конце он ссылается на возможность создания нескольких сайтов с использованием Apache, который @jeremyasnyder описывает чуть ниже ...
... однако в нашем случае мы тестируем мультитенантную хостинговую систему, и поэтому большинство доменов, которые мы хотим протестировать, идут на одно
virtualhost
и то же , в то время как пара других направляется в другое место.Так что в нашем случае вы просто используете подстановочные знаки regex в
ServerAlias
директиве, вот так ...источник
Вот общая конфигурация для тех, кто пытается достичь цели (подстановочные знаки в среде разработки, т. Е. XAMPP - в этом примере предполагается, что все сайты указывают на одну и ту же кодовую базу)
файл hosts (добавить запись)
файл:% SystemRoot% \ system32 \ drivers \ etc \ hosts
Конфигурация httpd.conf (включить vhosts)
file: \ XAMPP \ etc \ httpd.conf
Конфигурация httpd-vhosts.conf
файл: XAMPP \ etc \ extra \ httpd-vhosts.conf
перезапустить Apache
создать файл pac:
сохранить как угодно. pac, где вы хотите, а затем загрузить файл в сеть браузера> прокси> настройки авто_конфигурации (перезагрузите, если вы измените это)
источник
Для этого вы можете использовать echoipdns ( https://github.com/zapty/echoipdns ).
При запуске
echoipdns local
все запросы для поддоменов .local перенаправляются на 127.0.0.1, поэтому любой домен с xyz.local и т. Д. Преобразуется в 127.0.0.1. Вы можете использовать любой другой суффикс, также просто замените local именем, которое вы хотите.Echoipdns является еще более мощным, когда вы хотите использовать свой URL-адрес с других компьютеров в сети, вы все равно можете использовать его с нулевой конфигурацией.
Например, если IP-адрес вашей машины 192.168.1.100, вы можете использовать доменное имя xyz.192-168-1-100.local, которое всегда будет разрешаться до 192.168.1.100. Эту магию делают echoipdns, просматривая IP-адрес во второй части имени домена и возвращая тот же IP-адрес в DNS-запросе. Вам нужно будет запустить echoipdns на машине, с которой вы хотите получить доступ к удаленной системе.
echoipdns также может быть настроен как автономный прокси-сервер DNS, поэтому, просто указав на этот DNS, вы теперь можете использовать все перечисленные выше преимущества, не выполняя специальную команду каждый раз, и вы даже можете использовать ее с мобильных устройств.
Таким образом, это существенно упрощает разработку DNS на основе подстановочного домена для локальной и командной среды.
echoipdns работает на Mac, Linux и Windows.
ПРИМЕЧАНИЕ: я автор для echoipdns.
источник
Конфигурация автоматического субдомена config nginx с помощью Acrylic DNS Proxy
Добавьте в файл Acrylic hosts
127.0.0.1 example.com *.example.com
и перезапустите сервис Acrylic. $ branch - ваше имя субдомена.Установить вместо root / var / www / html / $ branch / public; путь вашего проекта
источник
Это можно сделать с помощью Pi-Hole , просто отредактируйте "/ etc / hosts" и перезапустите службу dns.
Пример:
источник
Вы можете использовать динамический DNS-клиент, такой как http://www.no-ip.com . Затем с помощью внешнего DNS-сервера CNAME * .mydomain.com перейдите на mydomain.no-ip.com.
источник
Хотя вы не можете добавить подобный шаблон, вы можете добавить полный список сайтов, которые вам нужны, по крайней мере для тестирования, которые мне подходят, в файле hosts вы просто добавляете:
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
...
источник