Ограничить доступ к виртуальному каталогу 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>
Другие вопросы по тегам