如何将apache url重写规则转换为IIS规则?

时间:2014-05-15 09:55:30

标签: regex apache .htaccess iis url-rewriting

我在我的.htaccess文件中有url重写规则。

RewriteEngine on
RewriteRule ^(scripts|css)/(.+)\.(.+)\.(js|css)$ $1/$2.$4 [L]

我需要在我的IIS上使用相同的规则。

我使用^(.*)\.[\d]{10}\.(css|js)作为模式。 我不确定要提及Rewrite URL

我想将网址/css/structure.1234.css重写为/css/structure.css

任何人都知道请帮忙吗?

1 个答案:

答案 0 :(得分:2)

我读了你的其他ColdFusion问题(关于使用正则表达式为文件名添加数值。)

我们使用下划线和14位数的日期戳。这是我们使用的IIS重写规则。您可以根据需要进行修改。

<rule name="CSSJSDatestamp" stopProcessing="true">
    <match url="^(.*)(_[0-9]{14}\.)(css|js)$" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{SCRIPT_NAME}" pattern="/_scripts/" />
    </conditions>
    <action type="Rewrite" url="{R:1}.{R:3}" />
</rule>

顺便说一下,自从安装了IISpeed(PageSpeed for IIS)后,我不再使用这种方法与我的ColdFusion驱动器网站。当文件发生变化时,它会自动缩小,连接和缓存JS / CSS文件(无需高速缓存)。它还可以根据设备支持优化图像(即缩小尺寸,自动转换为WebP等)。我也非常喜欢它可以移动所有的CSS&amp; JSS到HTML文件的HEAD,优先处理CSS并延迟加载所有“低于”的图像,必须添加任何ColdFusion代码或使用jQuery。

有关IISpeed / Pagespeed的更多信息,请查看: