gpt4 book ai didi

iis - web.config 将非 www 重定向到 www

转载 作者:行者123 更新时间:2023-12-03 07:16:41 25 4
gpt4 key购买 nike

对于 HTTP 和 HTTPS URL,我需要将非 www URL 重定向到 www URL。我尝试遵循 web.config 中的规则。

<rule name="Redirect to WWW" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^example.com$" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:0}" redirectType="Permanent" />
</rule>

<rule name="Redirect to WWW https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="^example.com$" />
</conditions>
<action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
</rule>

它非常适合非 ssl URL,但在 SSL 的情况下,它会从 https://example.com 重定向到 http://www.example.com .

最佳答案

要获得适用于匹配任意匹配全部情况的更安全规则,您可以使用重写映射解决方案。这是一个非常好的解决方案,唯一的缺点是设置它需要花费一点额外的精力,因为您需要在创建规则之前创建重写映射。换句话说,如果您选择使用它作为处理协议(protocol)的唯一方法,那么您将是安全的。

您可以创建一个名为 MapProtocol 的重写映射,您可以在任何规则操作中使用 {MapProtocol:{HTTPS}} 作为协议(protocol)。

<rewrite>
<rules>
<rule name="Redirect to www" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^example.com$" />
</conditions>
<action type="Redirect"
url="{MapProtocol:{HTTPS}}://www.example.com/{R:1}" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="MapProtocol">
<add key="on" value="https" />
<add key="off" value="http" />
</rewriteMap>
</rewriteMaps>
</rewrite>

Reference

关于iis - web.config 将非 www 重定向到 www,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17714732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com