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

时间:2017-10-27 18:00:03

标签: 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}" logRewrittenUrl="true" />
        </rule>
    </rules>
</rewrite> 

当我访问网址:www.foobar.com/lib/chart.js/dist/Chart.js由于某种原因,iis尝试在路径中找到Chart.js:wwwroot / lib / chart.js忽略url的最后一部分(/dist/Chart.js)当我期待采取wwwroot / lib / chart.js / dist / Chart.js

1 个答案:

答案 0 :(得分:1)

尝试修改您的正则表达式: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>

开始排除网址
laravel_session