IIS url 使用域更改和 https 重写规则
IIS url rewrite Rules With domain change and https
我使用以下代码将 http 重定向到 https,但不知道如何使用多个规则同时更新域和 https。
感谢您的帮助
<!--Examples-->
Example 1:
input : http://prodServer/MyApplication
Expected Output: https://prodServer.mycompany.com/MyApplication
Example 2:
input : https://prodServer/MyApplication
Expected Output: https://prodServer.mycompany.com/MyApplication
Example 3
input : http://prodServer.mycompany.com/MyApplication
Expected Output : https://prodServer.mycompany.com/MyApplication
代码
<system.webServer>
<rewrite>
<rules>
<rule name="httpsRedirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
我们只是为需求写了两个 URL 规则。一种用于将 HTTP 请求强制转换为 https 请求,另一种用于将主机名转换为实际的服务器名称。
<rewrite>
<rules>
<rule name="Force Https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{https}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
</rule>
<rule name="Myrule2" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="prodServer" />
</conditions>
<action type="Redirect" url="https://prodServer.mycompany.com/MyApplication" />
</rule>
</rules>
</rewrite>
注意:StopProcessing
标志对重定向操作没有影响,因此当收到 Http 请求时,这两个规则将在服务器端正确执行。
如果问题仍然存在,请随时告诉我。
它对我有用
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_HOST}" pattern="^prodServer$" />
</conditions>
而不是
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_HOST}" pattern="prodServer" />
</conditions>
我使用以下代码将 http 重定向到 https,但不知道如何使用多个规则同时更新域和 https。
感谢您的帮助
<!--Examples-->
Example 1:
input : http://prodServer/MyApplication
Expected Output: https://prodServer.mycompany.com/MyApplication
Example 2:
input : https://prodServer/MyApplication
Expected Output: https://prodServer.mycompany.com/MyApplication
Example 3
input : http://prodServer.mycompany.com/MyApplication
Expected Output : https://prodServer.mycompany.com/MyApplication
代码
<system.webServer>
<rewrite>
<rules>
<rule name="httpsRedirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
我们只是为需求写了两个 URL 规则。一种用于将 HTTP 请求强制转换为 https 请求,另一种用于将主机名转换为实际的服务器名称。
<rewrite>
<rules>
<rule name="Force Https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{https}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
</rule>
<rule name="Myrule2" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="prodServer" />
</conditions>
<action type="Redirect" url="https://prodServer.mycompany.com/MyApplication" />
</rule>
</rules>
</rewrite>
注意:StopProcessing
标志对重定向操作没有影响,因此当收到 Http 请求时,这两个规则将在服务器端正确执行。
如果问题仍然存在,请随时告诉我。
它对我有用
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_HOST}" pattern="^prodServer$" />
</conditions>
而不是
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_HOST}" pattern="prodServer" />
</conditions>