Url rewriting 当URL中间存在一个点时,重写器错误地工作。

Url rewriting 当URL中间存在一个点时,重写器错误地工作。,url-rewriting,asp.net-core-2.0,Url Rewriting,Asp.net Core 2.0,我有一个asp net core 2.0的项目 我已经在web.config中建立了下一条规则: <rewrite> <rules> <rule name="wwwroot" > <match url="([\S]+[.](js|css|png|gif|jpg|jpeg))" /> <action type="Rewrite" url="wwwroot/{R:1}" lo

我有一个asp net core 2.0的项目

我已经在web.config中建立了下一条规则:

<rewrite>
    <rules>
        <rule name="wwwroot" >
            <match url="([\S]+[.](js|css|png|gif|jpg|jpeg))" />
            <action type="Rewrite" url="wwwroot/{R:1}" logRewrittenUrl="true" />
        </rule>
    </rules>
</rewrite> 


当我访问url:www.foobar.com/lib/chart.js/dist/chart.js时,由于某种原因,iis会尝试在路径中查找chart.js:wwwroot/lib/chart.js忽略url的最后一部分(/dist/chart.js),当我希望使用wwroot/lib/chart.js/dist/chart.js

时,尝试这样修改您的regexp:
([\S]+[.](js | css | png | jpg | jpeg))$< /代码>如果在URL/P>结束时应考虑文件扩展名
编辑

根据您的规则,您应该排除从
wwwroot

    <rule name="wwwroot" >
        <match url="([\S]+[.](js|css|png|gif|jpg|jpeg))" />
        <conditions logicalGrouping="MatchAll">
             <add input="{REQUEST_URI}" negate="true" pattern="^/wwwroot" ignoreCase="true" />
        </conditions>
        <action type="Redirect" url="wwwroot/{R:1}" logRewrittenUrl="true" />
    </rule>


我已经做过了,但什么也没做。我认为regexp匹配得很好,但是只重写了第一部分尝试将
Rewrite
更改为
Redirect
,然后您将能够看到实际的行为。只是为了调试。哇!我得到了wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroot/wwroo正确路径:wwwroot/lib/chart.js/dist/chart.js,但我仍然收到404错误。文件就在那里,如果我将文件夹名更改为chartjs(去掉点),它可以工作,但是有了点,我得到404