【问题标题】:Microsoft IIS URL Rewrite - regexMicrosoft IIS URL 重写 - 正则表达式
【发布时间】:2013-06-16 08:16:44
【问题描述】:

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

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

它会生成以下模式

^([^/]+)/?$

涵盖对下一页上任何模板的任何请求

index.cfm?action={R:1}

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

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

  1. ^/css/ - 然后像任何其他页面请求一样处理任何脚本或子文件夹
  2. ^/js/ - 然后处理任何 js 文件,因为它存储在我的服务器上
  3. ^/assets/ - 将此文件夹中的任何文件作为普通文件处理。

我以前从未使用过这个模块,但我正在努力找出如何处理像 js 和 css 这样的普通文件以及它们各自的目录。

我在编写规则时没有问题,因此每个规则都以文件夹名称为前缀,但我一生都无法弄清楚从哪里获取有关此的任何信息。

【问题讨论】:

    标签: regex iis coldfusion rewrite


    【解决方案1】:

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

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

    【讨论】:

      【解决方案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>
      

      更新: 抱歉,我没有注意到您要求提供文件夹。但我会继续回答,以防其他人想知道。

      【讨论】:

      • 我认为上述条件模式应该忽略大小写,因为无论扩展名的大小写如何,我们都希望跳过 BMP 文件。
      • 我同意上述观点。忽略资产的大小写。除此之外,这是一个很好的规则。谢谢。
      猜你喜欢
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多