Назад | Перейти на главную страницу

Правила перенаправления IIS 8.5 и как их создавать

У меня несколько доменов, работающих на одном компьютере, все с SSL, я пытаюсь выучить это

У меня domain1.com domain2.com domain3.com все работает.

Я хочу добиться этого:

Если пользователи будут заполнять IP-адрес поля в браузере, я хочу, чтобы пользователи перенаправлялись в Google для примера. В противном случае отображается предупреждение об отсутствии SSL. По сути, я не хочу, чтобы пользователи могли получить доступ к этому ящику с прямым IP-адресом, я хочу, чтобы они перенаправлялись в Google, все они.

Я знаю, как это сделать на apache, не знаю, как это сделать на IIS 8.5.

Большое спасибо

Есть несколько способов сделать это, в моем решении используются только встроенные модули.

Основная идея состоит в том, что для всех ваших надлежащих сайтов с контентом вы используете только привязки имени хоста. Таким образом, они недоступны с использованием IP-адреса.

Затем вы используете дополнительный сайт, который вы привязываете не к имени хоста, а ко всем IP-адресам на сервере. Этот сайт обрабатывает все запросы, которые не обрабатываются другими веб-сайтами. На этом сайте вы перенаправляете все на Google.com

Вот как это сделать. Я использую команды PowerShell, поэтому убедитесь, что у вас установлен модуль IIS-PowerShell:

Enable-WindowsOptionalFeature -online -FeatureName IIS-ManagementScriptingTools

Я использую предустановленный Default Web Site в качестве универсального сайта убедитесь, что он привязан ко всем IP-адресам:

ls IIS:\Sites\

у вас должно получиться что-то вроде:

Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
Default Web Site 1    Started    %SystemDrive%\inetpub\wwwroot  http *:80:

http *:80: означает порт 80 на всех IP-адресах без имени хоста.

Вам понадобится модуль http-redirect:

Enable-WindowsOptionalFeature -online -FeatureName IIS-HttpRedirect

Теперь настройте перенаправление для всех запросов на сайт:

 Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/httpRedirect" -name "enabled" -value "True"
 Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/httpRedirect" -name "destination" -value "https://www.google.com"
 Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/httpRedirect" -name "exactDestination" -value "True"

Теперь все запросы на любые IP-адреса на сервере должны перенаправляться на google.com, теперь вы можете добавлять дополнительные сайты с привязками к именам хостов.

При работе с https все становится немного сложнее, но использование https с IP-адресом в любом случае приведет к ошибке сертификата.