【问题标题】:IIS / web.config url redirect rule based on regex is not triggered未触发基于正则表达式的 IIS/web.config url 重定向规则
【发布时间】:2017-05-01 14:19:05
【问题描述】:

这是我的 web.config 规则

    <rule name="spiderRedirect" stopProcessing="true">
        <match url=".post/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z-]+)" />
        <action type="Redirect" url="https://example.net/bot/post.php?category={toLower:{R:1}}&amp;id={toLower:{R:2}}&amp;title={toLower:{R:3}}" appendQueryString="false" />
    </rule>

这应该给出这个结果

输入:

https://example.net/post/celebrity/4cHYQ7i/maisie-williams

应该导致:

{R1}: celebrity
{R2}: 4cHYQ7i
{R3}: maisie-williams

它应该重定向到:

https://example.net/bot/post.php?category=celebrity&id=4cHYQ7i&title=maisie-williams

这个输入:

https://example.net/post/nerdy/NE5cHQZ/when-i-have-to-do-technical-support

应该导致:

{R1}: nerdy
{R2}: NE5cHQZ
{R3}: when-i-have-to-do-technical-support

服务器运行,我很确定正则表达式是正确的,但从未触发规则。即使我使用上述输入,我也永远不会重定向到谷歌。

为什么没有触发规则?

【问题讨论】:

  • 为什么你的正则表达式有一个前导点?
  • 另外,您应该在正则表达式中使用 ^$ 锚点以避免错误捕获。

标签: asp.net regex redirect iis web-config


【解决方案1】:

您将转义“/”以匹配您的不同输入。新的正则表达式是:

([0-9a-zA-Z]+)\/([0-9a-zA-Z]+)\/([0-9a-zA-Z-]+)

您可以在https://regex101.com 上对其进行测试。 它匹配你的两个不同的输入。

【讨论】:

  • 谢谢,我把它改成了:,但是还是没有触发匹配..
  • 您的正则表达式与您的两个输入不匹配?我认为问题来自“帖子”
  • @Mattlasse 我确实在 regex101 签出。我必须表明我想要'post'之后的值
【解决方案2】:

我让它工作了。还检查用户代理。 我用它来重定向网络爬虫。

    <rule name="spiderRedirect" stopProcessing="true">
      <match url=".?post/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z-]+)" />
      <conditions>
        <add input="{HTTP_USER_AGENT}" pattern="(Google|MSNBot|Twitterbot|Pinterest|Facebot|facebookexternalhit|MJ12bot|bingbot|SimplePie|SiteLockSpider|okhttp|curl|YandexBot|ScoutJet|Slurp|DuckDuckBot|Baiduspider|Sogou|Konqueror|Exabot|ia_archiver|Screaming)"/>
        <add input="{HTTPS}" pattern="on"/>
      </conditions>
      <action type="Redirect" url="https://example.net/bot/post.php?category={toLower:{R:1}}&amp;id={toLower:{R:2}}&amp;title={toLower:{R:3}}" appendQueryString="false" />
    </rule>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 2011-10-07
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    相关资源
    最近更新 更多