简单的IIS URL重写

时间:2011-10-21 21:27:31

标签: iis url-rewriting iis-7.5

简单的问题。我需要将特定子域URL上的所有http 80和https 443请求重定向到备用SSL端口https 444。

示例:http://sub.corp.com - > https://sub.corp.com:444 示例:https://sub.corp.com - > https://sub.corp.com:444

我只想使用IIS 7.5 URL Rewrite模块。

感谢。

2 个答案:

答案 0 :(得分:8)

以下网址重写规则应该符合您的要求:

<rewrite>
    <rules>
        <rule name="Redirect to port 444" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTPS}" pattern="^ON$" negate="true" />
                <add input="{SERVER_PORT}" pattern="^444$" negate="true" />
            </conditions>
            <action type="Redirect" url="https://sub.corp.com:444/{R:0}" />
        </rule>
    </rules>
</rewrite>

每当HTTPS未开启或端口号不是444时,它都会重定向到https://sub.corp.com:444。该站点应绑定到端口80(使用HTTP),443(使用标准SSL的HTTPS)en 444(带有HTTPS)让它工作。

答案 1 :(得分:1)

Marco的解决方案运行正常,以防有人想知道如何在IIS中应用它。 您将其添加到 web.config 文件。如果在IIS中创建虚拟目录,则所选物理文件夹将创建一个web.config。

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="Redirect to port 50443" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAny">
                    <add input="{HTTPS}" pattern="^ON$" negate="true" />
                    <add input="{SERVER_PORT}" pattern="^50443$" negate="true" />
                </conditions>
                <action type="Redirect" url="https://{HTTP_HOST}:50443/{R:0}" />
            </rule>
        </rules>
    </rewrite>
 </system.webServer>
</configuration>