2013-05-30 4 views
9

(Вы можете перейти непосредственно к вопросу, но контекст на фоне раздела.)Несколько локальных сайтов: 80-связанных сайтов в IIS?

технический контекст

  • Windows 8
  • IIS 7

фона :

As несколько других, я работаю с IIS, и время от времени мне нужно настроить локальную версию сайта. Теперь, при настройке разных сайтов, довольно просто назначить им разные порты, чтобы они не перекрывались. Таким образом, у вас может быть ваш сайт A на порту 80, ваш сайт B в порту 81 и так далее.

Теперь я хочу настроить привязки, чтобы я мог иметь несколько сайтов под портом 80 и с разделяющим разметкой заголовка, которые я могу в то же время давать значимые URL-адреса этим сайтам.

Возможность сделать это с добавлением записей в файле хостов, такие как:

127.0.0.1 siteA.com 
127.0.0.1 siteB.com 

И с этим, вы должны быть в состоянии перейти к siteA.com или siteB.com и есть, что работа на местном уровне.

Но я хочу сделать еще один шаг, так как локальный уже настроен, чтобы соответствовать 127.0.0.1, так:

Вопрос:

Я создал привязок IIS как:

site host header  port 
siteA siteA.localhost 80 
siteB siteB.localhost 80 

И я ожидал, что я смогу перейти на http://siteA.localhost/ и http://siteB.localhost/ и получить свои сайты.

Однако, когда я просматриваю, кажется, что мои запросы никогда не достигают IIS, и адрес не разрешен.

Почему это не работает?


Update:

Я выбрал ответ Chue х, потому что он объяснил, почему это не работает. Для тех, кто может следовать по тому же пути, вы можете подумать «ну, я мог бы просто добавить *.localhost в файл hosts, и это должно быть сделано». или даже переключиться на *.local или *.localdev.com или что-то в этом роде.

Это, однако, не работает: Wildcards in a Windows hosts file

В Chue х отмечалось, наш единственный подход прямо сейчас, чтобы добавлять записи в файл хостов или, как они объясняют, в связанном вопросе, чтобы использовать другой DNS-сервер.

+0

Думаю, я вижу, что вы говорите. Итак, вы пытаетесь перейти к 'siteA.localhost' без добавления записи в файл hosts? –

+0

@chuex Большое спасибо. С вашим ответом и некоторыми другими выводами я теперь понимаю, почему это не работает, и то, чего я пытаюсь достичь, невозможно таким образом. – Alpha

+0

Возможный дубликат [Аутентификация форм через субдомены в локальных IIS] (http://stackoverflow.com/questions/8278015/forms-authentication-across-sub-domains-on-local-iis) –

ответ

16

Ваш файл hosts должен соответствовать вашим привязкам IIS, которые должны соответствовать браузеру URL-адресов.

Так что, если ваш хост файл выглядит следующим образом:

127.0.0.1 siteA.localhost 
127.0.0.1 siteB.localhost 

привязками IIS должны быть:

site host header  port 
siteA siteA.localhost 80 
siteB siteB.localhost 80 

Наконец, с локального компьютера, необходимо перейти к:

http://siteA.localhost 

EDIT - Если вы пытаетесь для выполнения вышеуказанного без добавления записей хостов для siteA и siteB это не сработает. DNS не найдет его. Например, что произойдет, если вы попытаетесь перейти на «foo.stackoverflow.com» - запрос не удастся, хотя «stackoverflow.com» является известным адресом.

+0

Поскольку «localhost» - это известный адрес - есть ли способ избежать добавления записей в файл хоста? Я пытаюсь лечить «localhost», как если бы это был TLD или полный домен. – Alpha

+0

@Alpha - нет, потому что DNS не может предположить, что «siteA.localhost» и «localhost» - это тот же адрес. Они * могут * быть разными адресами. –

+0

Ваш хост-файл обратный, IP-адрес на первом месте. – RenniePet

Смежные вопросы