如何将 URL 中带有端口的 IIS 站点重定向或重写为不带端口的 URL?

如何将 URL 中带有端口的 IIS 站点重定向或重写为不带端口的 URL?

我不能 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 重写来向客户端隐藏端口。

相关内容