【问题标题】:Problems with Regular Expression for Rewrite用于重写的正则表达式问题
【发布时间】:2014-03-24 22:13:39
【问题描述】:

我的正则表达式有问题,有人可以帮忙吗?

示例网址:http://rhine.ga.domain.com

<rule name="CityStateRule">
    <match url="^.*(/$|$)"/>
    <conditions>
        <add input="{HTTP_HOST}" pattern="^(^[A-Za-z0-9_-]+)\.(^(?:a[klrz]|c[aot]|d[ce]|fl|ga|hi|i[adln]|k[sy]|la|m[adeinost]|n[cdehjmvy]|o[hkr]|pa|ri|s[cd]|t[nx]|ut|v[at]|w[aivy])+)\.domain\.com$"/>
    </conditions>
    <action type="Rewrite" url="/LocationMatch.html?c={C:1}s={C:2}"/>
</rule>

【问题讨论】:

    标签: regex iis-7 url-rewriting url-rewrite-module


    【解决方案1】:

    您没有解释您遇到的什么问题,但这里有一些事情需要注意:

    <match url="^.*(/$|$)"/>
    

    这匹配任何不包含换行符的字符串。这可能不是你想要的。它可能会导致无限的重定向循环,因为您正在重写 的 URL 也将匹配此正则表达式。 (IIS是否允许多次匹配相同的重写规则?)

    另外,这是一个较小的点,但在这个:

    ?c={C:1}s={C:2}
    

    您的查询字符串参数之间似乎缺少与符号 &amp;

    【讨论】:

    • 嗯,关于 IIS 的问题很好,不确定它是否匹配多次。我在想这个问题与我的正则表达式分组有关,^(......我尝试使用正则表达式并生成一个新的,你会认为这将是一个常见问题吗?哈哈,网上不多..(为什么我在这里是对的?) ....我遇到的问题是,这个重写规则将我重定向到主页而不是自定义页面,想知道这是否可能是规则匹配的问题。我想检查对 city.state.domain 的所有请求。 com ...我写了一个城市规则,但现在我需要一个组合的城市/州规则。
    • 更多信息请访问 [link]stackoverflow.com/questions/9069938/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多