IIS URL重写 - 尽管存在文件,但仍会捕获规则

时间:2011-12-06 00:18:10

标签: iis url-rewriting

我有一条重写URL的规则,除非存在物理文件(因此可以返回静态文件) - 但是出于某种原因,规则会被重写,无论如何都会非常沮丧。

这是我的Web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

<system.webServer>

    <rewrite>
        <rules>
            <clear />
            <rule name="Front Page">
                <match url="/?" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="/Home/FrontPage" />
            </rule>
            <rule name="Map Everything" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="true" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile"      negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="EntryPoint.php/{R:1}" appendQueryString="true" />
            </rule>

        </rules>
    </rewrite>

</system.webServer>

1 个答案:

答案 0 :(得分:0)

啊,事实证明“Front Page”规则是问题,规则是“/?”我应该使用“^ $”来匹配所有内容。

修复后,正在遵守IsFile / IsDirectory规则。