【问题标题】:iis url redirect http to www https with one page excludediis url 将 http 重定向到 www https,排除一页
【发布时间】:2014-03-17 23:25:14
【问题描述】:

类似的问题被问了很多次,但我仍然在努力解决“排除一页”部分。我的解决方案基于例如iis url redirect http to non www https 但这个解决方案不是 100% 。它不适用于 [https www domain com] 到 [https domain com] (www 到非 www 的部分已提前恢复)

我希望排除链接 http_://www.domain.com/ezine/some-more-url

这是我到目前为止的地方:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Canonical Host Name (HTTP)" stopProcessing="true">
                    <match url="(.*)" />

                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTPS}" pattern="OFF" />
                        <add input="{HTTP_HOST}" pattern="(?=^domain\.com)(?=^(.(?!\/ezine\/))*$)" />
                    </conditions>

                    <action type="Redirect" url="http://www.domain.com/{R:1}" redirectType="Permanent" />
                </rule>

                <rule name="Canonical Host Name (HTTPS) www" stopProcessing="true">
                    <match url="(.*)" />

                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTPS}" pattern="OFF" />
                        <add input="{HTTP_HOST}" pattern="(?=^www.domain\.com)(?=^(.(?!\/ezine\/))*$)" />
                    </conditions>

                    <action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="Permanent" />
                </rule>

                <rule name="Canonical Host Name (HTTPS)" stopProcessing="true">
                    <match url="(.*)" />

                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTPS}" pattern="ON" />
                        <add input="{HTTP_HOST}" pattern="(?=^domain\.com)(?=^(.(?!\/ezine\/))*$)" />
                    </conditions>

                    <action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="Permanent" />
                </rule>

            </rules>
        </rewrite>
    </system.webServer>
</configuration>

我已经测试过正则表达式,它看起来不错。它仍然在 http_://www.domain.com/ezine/some-more-url 上重定向到 https_://www.domain.com/ezine/some-more-url 的任何原因。 其他一切正常

对于那些问我为什么需要它的人,排除:(但这是另一回事)

Exception: Source:System, Message:The underlying connection was closed: 
Could not establish trust relationship for the SSL/TLS secure channel., 

InnerException:System.Security.Authentication.AuthenticationException: 
The remote certificate is invalid according to the validation procedure. 
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) at
System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken m 

【问题讨论】:

    标签: regex iis redirect


    【解决方案1】:

    我不确定这是否对任何人有用,但我终于把它整理好了:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Canonical Host Name (HTTP)" stopProcessing="true">
                    <match url="(.*)" />
    
                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTPS}" pattern="OFF" />
                        <add input="{HTTP_HOST}" pattern="^domain\.com$" />
                        <add input="{URL}" pattern="^(.(?!ezine\/))*$" />                                   
                    </conditions>
    
                    <action type="Redirect" url="http://www.domain.com/{R:1}" redirectType="Permanent" />
                </rule>
                <rule name="Canonical Host Name (HTTPS) www" stopProcessing="true">
                    <match url="(.*)" />
    
                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTPS}" pattern="OFF" />
                        <add input="{HTTP_HOST}" pattern="^www.domain\.com$" />
                        <add input="{URL}" pattern="^(.(?!ezine\/))*$" />                                   
                    </conditions>
    
                    <action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="Permanent" />
                </rule>
                <rule name="Canonical Host Name (HTTPS)" stopProcessing="true">
                    <match url="(.*)" />
    
                    <conditions logicalGrouping="MatchAll">
                        <add input="{HTTPS}" pattern="ON" />
                        <add input="{HTTP_HOST}" pattern="^domain\.com$" />
                    </conditions>
    
                    <action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="Permanent" />
                </rule>
    
            </rules>
        </rewrite>      
    </system.webServer>
    </configuration>
    

    【讨论】:

      猜你喜欢
      • 2013-06-11
      • 2018-07-25
      • 2019-12-13
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 2014-03-26
      • 2018-09-25
      • 1970-01-01
      相关资源
      最近更新 更多