【问题标题】:Multiple Rewrite rules in the same URL同一 URL 中的多个重写规则
【发布时间】:2020-07-24 04:25:26
【问题描述】:

我在下面有我的重写规则,但我不明白为什么我的第二条规则不起作用。当我禁用第一个时,它将正常工作。如果两个规则的 url 完全相同,是否有限制?请注意,在我的第一个条件中,如果百度蜘蛛抓取我们的网站,我会尝试将请求映射到 NuxtJS,否则只需在 wwwroot 目录中提供静态 HTML 文件

<?xml version="1.0" encoding="UTF-8"?>
<rules>
    <clear />
    <rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="false">
        <match url="(.*)" />
        <action type="Rewrite" url="http://localhost:3000/{R:1}" />
        <conditions>
            <add input="{HTTP_USER_AGENT}" pattern="^((?Baidu).)*$" />
        </conditions>
    </rule>
    <rule name="StaticHTMLForBaiduCrawler" enabled="true" stopProcessing="false">
        <match url="(.*)" />
        <conditions>
            <add input="{HTTP_USER_AGENT}" pattern="^((?!Baidu).)*$" />
        </conditions>
        <action type="Rewrite" url="{R:1}/index.html" />
    </rule>
</rules>

【问题讨论】:

    标签: url-rewriting iis-8.5


    【解决方案1】:

    没有这样的限制。

    您的第一个模式在语法上无效,因此出现错误。

    表达式“^((?Baidu).)*$”的语法无效。

    由于您不需要完全匹配,所以像 Baidu 这样的简单模式就可以了。查看以下规则并注意negate="true"

    <rules>
        <clear />
        <rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
            <match url="(.*)" />
            <action type="Rewrite" url="http://localhost:3000/{R:1}" />
            <conditions>
                <!-- if user agent contains Baidu -->
                <add input="{HTTP_USER_AGENT}" pattern="Baidu" />
            </conditions>
        </rule>
        <rule name="StaticHTMLForBaiduCrawler" enabled="true" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <!-- if user agent does not contain Baidu -->
                <add input="{HTTP_USER_AGENT}" pattern="Baidu" negate="true" />
            </conditions>
            <action type="Rewrite" url="{R:1}/index.html" />
        </rule>
    </rules>
    

    【讨论】:

    • 好吧,让我试试这个
    猜你喜欢
    • 1970-01-01
    • 2011-04-07
    • 2020-01-05
    • 2011-01-28
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    相关资源
    最近更新 更多