Ограничить доступ к виртуальному каталогу IIS с корневого сайта
У меня есть два домена (domain1.com и domain2.com). Оба они используют один и тот же хостинг-сервер Windows с IIS7.
Мой хостинг-провайдер (GoDaddy) называет один из доменов "основным доменом", и он всегда указывает на корневую папку, которую мне дали.
Для другого домена я создал виртуальный каталог в IIS и указал его там.
Структура папок такая:
root/
--Default.aspx
--SomeFile.aspx
--domain2folder/
----Default.aspx
----Domain2SomeFile.aspx
Итак, если я наберу domain1.com, я вижу regulakr Default.aspx. Но если я наберу domain2.com, мне будет показано содержимое domain2folder, как если бы это было отдельное веб-приложение - я думаю, для этого и предназначен виртуальный каталог IIS. Ну и хорошо.
Но проблема в том, что когда я набираю http://domain1.com/domain2folder, я вижу сайт domain2!
Но я не хочу, чтобы это показывалось, когда я использую такой путь от domain1. Только если они используют domain2.com, пользователь сможет увидеть это содержимое. Как я могу это сделать? Надеюсь, у меня есть смысл.
Благодарю.
2 ответа
Серьезно не имеет смысла настраивать это таким образом.
Обычно вы просто устанавливаете domain2folder в качестве корня другого веб-сайта.
Вы можете использовать URL Rewrite, чтобы запретить доступ на основе заголовка хоста или перенаправить на нужный домен, если это необходимо: http://www.iis.net/download/URLRewrite
Если ваш сайт работает в IIS 7 или более поздней версии, а хостер установил его, вы можете просто поместить файл web.config в вашу папку domain2 со следующим содержимым, и он будет перенаправлен в нужный домен, если кто-то попытается получить к нему доступ не с того домена:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HostNameRule">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^domain2\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://domain2.com/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>