Я новичок в администрировании IIS, но мне нужно настроить сайт, у которого в корне сайта есть несколько каталогов, которые также являются сайтами.
Например, скажем, у меня есть сайт по адресу http://www.example.com
В корневом каталоге этих сайтов есть несколько папок для содержимого, но также есть два других каталога, например / community и / labs.
Я хочу сделать эти каталоги корневым каталогом документов для отдельных сайтов, чтобы вы могли получить доступ к совершенно другому сайту asp.net, если зайдете на http://www.example.com/community или http://www.example.com/labs от этого, если вы перешли на основной сайт по адресу http://www.example.com.
Действительно, это будет 3 сайта в одном каталоге.
Я вижу, как можно создавать отдельные сайты, используя разные порты, но я хочу, чтобы все они были на порту 80.
Являются ли эти подкаталоги виртуальными сайтами? Я знаю, что это возможно, потому что наши системные администраторы настроили это для нашего корпоративного сайта, о котором я публиковал много раз, но я пытаюсь сделать это сам и не могу получить ответ от корпоративного ИТ-отдела на как они это сделали. : ^)
Спасибо, Скотт
Это довольно просто в IIS 7.5.
Поскольку «веб-сайт», попросту говоря, это просто заполнитель с как минимум 1 сопоставлением конечной точки ( Привязка) и одно или несколько приложений.
Создайте веб-сайт (или измените настройки веб-сайта по умолчанию). Когда вы развернете веб-сайт в диспетчере IIS, вы увидите дерево подкаталогов, а именно подкаталогов в физическом каталоге, на которые указывает корневое приложение вашего веб-сайта.
Щелкните правой кнопкой мыши подкаталог, в котором вы хотите разместить другое приложение (например, «Сообщество»), и выберите Преобразовать в приложение. Теперь вы сможете настроить альтернативный пул приложений для обслуживания контента, и вы можете настроить приложение индивидуально, независимо от (почти) каких-либо настроек функции в вашем корневом приложении.
Для более подробного объяснения посетите Блог Майка Володарского, он разработал архитектуру приложения IIS 7, так что если кто-то знает, что к чему :-)
В IIS7 каждый сайт имеет приложение по умолчанию, но вы можете добавить дополнительныеПриложения довольно легко. Просто щелкните сайт правой кнопкой мыши и выберите «Добавить приложение». Здесь вы должны указать псевдоним (/ community), пул приложений (возможно, заранее создать новый) и путь к физическим файлам на сервере.
Альтернативный способ, не затрагивающий существующие сайты (многие из которых создаются и управляются M $ products automaграммically) - это обратный прокси с перезаписью URL и / или исправлением ответа, если это необходимо:
Обратный прокси с URL Rewrite v2 и маршрутизацией запросов приложений
Там довольно длинные инструкции сводятся к следующему:
web.config
под /configuration/system.webServer
(показано, как добавить их с помощью InetMgr
пользовательский интерфейс):<rewrite>
<!--route requests-->
<rules>
<rule name="Reverse Proxy to webmail" stopProcessing="true">
<match url="^webmail/(.*)" />
<action type="Rewrite" url="http://localhost:8081/{R:1}" />
</rule>
<rule name="Reverse Proxy to payroll" stopProcessing="true">
<match url="^payroll/(.*)" />
<action type="Rewrite" url="http://localhost:8082/{R:1}" />
</rule>
</rules>
<!--patch response HTML-->
<outboundRules>
<rule name="Add application prefix" preCondition="IsHTML">
<match filterByTags="A" pattern="^/(.*)" />
<conditions>
<add input="{URL}" pattern="^/(webmail|payroll)/.*" />
</conditions>
<action type="Rewrite" value="/{C:1}/{R:1}" />
</rule>
<preConditions>
<preCondition name="IsHTML">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>