首页 > 解决方案 > web.config:从重定向规则中排除 wordpress 文件夹

问题描述

我有一个 ASP 网站,它使用web.config规则在 url 中强制 (www)。该网站有一个包含 Wrodpress(php) 的子文件夹,它试图删除 (www),因此其规则与主网站冲突。

我不知道 Wordpress 是否使用插件或.htaccess来删除 www 所以我不想修改 wordpress 设置,而是从顶级web.config重定向规则中排除 wordpress 文件夹。这是我迄今为止尝试过但没有工作的方法:

    <rewrite>
        <rules>
            <rule name="Add www" patternSyntax="Wildcard" stopProcessing="true">
                <match url="*" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="www.example.com" negate="true" />
                    <add input="{HTTP_HOST}" pattern="www.example.com/wrodpress" negate="true" />
                    <add input="{HTTP_HOST}" pattern="example.com/wrodpress" negate="true" />
                </conditions>
                <action type="Redirect" url="http://www.example.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>

标签: wordpressredirectweb-config

解决方案


不要定义复杂的规则,而是在其他规则之前停止对特殊文件夹的处理:

<rewrite>
    <rules>
        <rule name="ignore blog" stopProcessing="true">
            <match url="^wrodpress/" />
            <action type="None" />
        </rule>

        <rule name="Add www" patternSyntax="Wildcard" stopProcessing="true">
            <match url="*" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="www.example.com" negate="true" />
            </conditions>
            <action type="Redirect" url="http://www.example.com/{R:1}" />
        </rule>
    </rules>
</rewrite>

推荐阅读