如果端口 80 关闭,我可以从 HTTP 重定向到 HTTPS 吗?
Can I Redirect to HTTPS from HTTP if port 80 is closed
我在 Windows 服务器上托管了一个 React Web 应用程序。
在 IIS
中,我创建了 URL Rewrite
规则。当我从我们的网络中查看网站时,重写规则起作用并且它从 HTTP 重定向到 HTTPS。
然而,由于端口 80 在 public 端关闭,当我尝试以 HTTP 查看网站时,它永远不会重定向,只是超时。我假设这是因为它从未真正点击过该页面,因为端口已关闭,因此重定向永远不会启动。
有没有办法在该端口关闭的情况下仍然让网站重定向到 HTTPS?
这是我的 web.config
文件的样子:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
<httpRedirect enabled="false" destination="https://mywebsitehere.com" />
<rewrite>
<rules>
<rule name="http to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://mywebsitehere.com/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
答案是否定的,为了让任何形式的 HTTP 重定向在服务器内工作,服务器必须能够在端口 80 上获取传入的连接 HTTP 请求,然后它会发送一个 3xx 响应来告诉浏览器使用不同的 URL 再试一次,URL 将是一个 HTTPS URL。如果HTTP请求在服务器拿到之前就关闭了,自然就什么也做不了了。
我在 Windows 服务器上托管了一个 React Web 应用程序。
在 IIS
中,我创建了 URL Rewrite
规则。当我从我们的网络中查看网站时,重写规则起作用并且它从 HTTP 重定向到 HTTPS。
然而,由于端口 80 在 public 端关闭,当我尝试以 HTTP 查看网站时,它永远不会重定向,只是超时。我假设这是因为它从未真正点击过该页面,因为端口已关闭,因此重定向永远不会启动。
有没有办法在该端口关闭的情况下仍然让网站重定向到 HTTPS?
这是我的 web.config
文件的样子:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
<httpRedirect enabled="false" destination="https://mywebsitehere.com" />
<rewrite>
<rules>
<rule name="http to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://mywebsitehere.com/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
答案是否定的,为了让任何形式的 HTTP 重定向在服务器内工作,服务器必须能够在端口 80 上获取传入的连接 HTTP 请求,然后它会发送一个 3xx 响应来告诉浏览器使用不同的 URL 再试一次,URL 将是一个 HTTPS URL。如果HTTP请求在服务器拿到之前就关闭了,自然就什么也做不了了。