URL重写将我的所有文件分为两个部分

问题描述 投票:0回答:2

这是我在网络配置中的规则

<rule name="rewrite">
  <match url="^([^/]+)/([^/]+)?$" />
<action type="Rewrite" url="/review.aspx?c={R:1}&amp;t={R:2}" appendQueryString="false" />
</rule>

成功将review.aspx?c=value&t=value转换为/value/value

我现在的问题是,我的/css/style.css现在加载为review.aspx

有没有办法阻止这种情况?不仅适用于CSS,而且适用于所有实例?

c# regex web-config
2个回答
0
投票

Rewrite rule conditions使您可以限制重写规则的应用,这样它仅适用于满足条件的那些请求。

通过定义以下条件,您可以确保仅针对与现有文件不匹配的URL进行重写。

<rule name="rewrite">
  <match url="^([^/]+)/([^/]+)?$" />
  <conditions>
    <add input="{REQUEST_FILENAME}" matchType="isFile" negate="true" />
  </conditions>
  <action type="Rewrite" url="/review.aspx?c={R:1}&amp;t={R:2}" appendQueryString="false" />
</rule>

0
投票

由于匹配模式,您可能需要添加排除项,例如:

<conditions logicalGrouping="MatchAll">
    <add input="{REQUEST_URI}" pattern="\.js|\.css|\.jpg" negate="true" />
</conditions>
© www.soinside.com 2019 - 2024. All rights reserved.