IIS 8.5 重定向规则及其制定方法

IIS 8.5 重定向规则及其制定方法

我在一台机器上运行了几个域名,所有东西都使用 SSL,我正在尝试学习这些东西

我有 domain1.com domain2.com domain3.com 一切正常。

我想实现这个目标:

例如,如果用户在浏览器中填写了盒子的 IP,我希望用户重定向到 google。否则它会显示有关非 SSL 的警告。基本上,我不希望用户能够使用直接 IP 访问此盒子,我希望他们全部重定向到 google。

我知道如何在 apache 上执行此操作,但不知道如何在 IIS 8.5 上执行此操作。

非常感谢

答案1

有多种方法可以做到这一点,我的解决方案仅使用内置模块。

基本思想是,对于所有适当的内容网站,您仅使用主机名绑定。这样就无法使用 IP 地址访问它们。

然后,您使用一个额外的网站,您不会将其绑定到主机名,而是绑定到服务器上的所有 IP 地址。该网站处理其他任何网站都未接收的所有请求。在该网站上,您将所有内容重定向到 Google.com

以下是操作方法,我使用 PowerShell 命令,因此请确保已安装 IIS-PowerShell 模块:

Enable-WindowsOptionalFeature -online -FeatureName IIS-ManagementScriptingTools

我使用预先安装的Default Web Site作为catch-all站点,确认该站点已绑定到所有IP地址:

ls IIS:\Sites\

你应该得到类似这样的结果:

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

http *:80:表示所有没有主机名的 IP 地址上的端口 80。

您需要 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 时,情况会变得稍微复杂一些,但无论如何,使用带有 IP 地址的 https 都会导致证书错误。

相关内容