我不能 100% 确定这是否是发布此内容的 StackOverflow 的正确部分,但对我来说这是最有意义的。如果不是,请原谅!
目前我在 IIS 中有一个站点,配置了 HTTPS 端口 7500。我可以使用以下 URL 访问该站点:https://portal.company.com:7500。
我想做的是删除 URL 末尾的端口号,以便用户可以使用https://portal.company.com...
我是 IIS 的新手,但我尝试过 HTTP 重定向,如果我在这个 IIS 站点上使用,它会将访问 portal.company.com:7500 的用户重定向到其他站点,而这并不是我想要的。我还想过要创建另一个 IIS 站点,该站点的用途是访问 URL portal.company.com,当访问时,它会重定向到我的 portal.company.com:7500,但我不知道这是否是最好的方法。
所以我的问题是,我有哪些选择可以实现上述行为,最佳/推荐的方法是什么?
我之前没有玩过 URL 重写,但现在我会在等待回复的同时研究一下。谢谢!!
在 Windows Server 2008 计算机上使用 IIS 管理器。
答案1
尝试这个
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="removePort" stopProcessing="true">
<match url="^(http(s)?://)?(portal\.company\.com):7500(/.*)?$" />
<action type="Redirect" url="https://{R:3}/{R:4}" />
</rule>
</rules>
</rewrite>
</system.webServer>
答案2
如果如您在另一条回答的评论中所述,您有另一个站点已经在端口 443 上运行,那么您将需要另一个 IP 地址,以便您可以将该站点绑定到该地址上的端口 :443,然后相应地更改您的 DNS 记录。您不能在 IIS 中使用 HTTPS 将多个站点绑定到同一个套接字,至少在 SNI 完全可行并且 Microsoft 相应地更新软件之前是这样。
例外情况是,如果您运行的是适用于两个站点的通配符或 ASN 证书,则请按照此程序。
这是假设您的目标是允许访问者通过浏览器通过 HTTPS 访问网站而无需指定端口。如果我误解了您的问题,那么答案就不准确了:)
答案3
您是否尝试过简单地将 http 绑定更改为使用端口 80?这应该是您需要做的全部工作,无需进行重定向。假设您在端口 80 上没有其他网站,那么这对您来说应该没问题。
http://www.gadgetcage.com/how-to-change-iis-port-in-windows-7/3457/
这是基于这样一个事实:您愿意在端口 80 上创建一个新网站,以便简单地重定向到端口 7500。只需去掉中间人,将端口 7500 站点移动到端口 80,问题就解决了。
答案4
您可以在同一个服务器上使用 2 个 SSL 证书,但必须使用另一个端口。多名称证书非常昂贵。可以使用 URL 重写来向客户端隐藏端口。