Microsoft IIS URL重写 - 正则表达式

时间:2013-06-16 08:16:44

标签: regex iis coldfusion rewrite

我目前正在使用我的IIS服务器,我已经安装了IIS重写模块。

我目前有一个规则,它允许我很容易地解析我的所有coldfusion模板。

它会生成以下模式

^([^/]+)/?$

包含下页任何模板的任何请求

index.cfm?action={R:1}

此规则只是将任何请求解析到我的网站,并直接转到我的index.cfm页面。

我想了解的是如何获得以下内容。

  1. ^/css/ - 然后像任何其他页面请求一样处理任何脚本或子文件夹
  2. ^/js/ - 然后处理存储在我服务器上的任何js文件
  3. ^/assets/ - 将此文件夹中的任何文件作为普通文件处理。
  4. 我以前从未使用过这个模块,但是我很难找到如何处理像js和css这样的普通文件,以及它们各自的目录。

    我在编写规则方面没有问题,因此每个规则都以文件夹名称为前缀,但在我的生活中无法找到从中获取任何信息的地方。

2 个答案:

答案 0 :(得分:2)

只要您指定之前的规则捕获所有内容的规则,您就应该能够使用stopProcessing属性来阻止模块对请求执行任何操作。无需指定操作。例如:

<rule name="CSS files" stopProcessing="true">
   <match url="^/css/" />
</rule>

答案 1 :(得分:2)

这是所有静态文件

<rule name="Static Files" stopProcessing="true">
    <match url="^(.*)$" />
    <conditions logicalGrouping="MatchAll">
    <add input="{SCRIPT_NAME}" pattern="\.(bmp|gif|jpe?g|png|css|js|txt|pdf|doc|xls)$" ignoreCase="true" />
    </conditions>
    <action type="None" />
</rule>

更新: 对不起,我没有注意到你要求提供文件夹。但我会继续回答,以防其他人喜欢了解它。