IIS重写规则检查虚拟目录中的文件

时间:2018-04-29 08:47:19

标签: iis url-rewriting coldfusion iis-7.5 virtual-directory

我已将一个文件夹作为虚拟目录添加到站点,需要检查虚拟目录NOT请求目录下的文件路径。

如果文件存在于虚拟目录下,则需要重写为处理程序,即。

Site Physical Path: D:/MySite/
Virtual Directory Physical Path: D:/MySite2/

Virtual directory name: virtualDir

Request file path: D:/MySite/index.cfm
Check file path: D:/MySite2/index.cfm

我添加了以下规则:

<rule name="Invoke handler for virtual directory files" stopProcessing="true">
    <match url="^(.*)$" ignoreCase="true" />
    <conditions logicalGrouping="MatchAll">
        <add input="D:\MySite2{PATH_INFO}" matchType="IsFile" ignoreCase="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="true" negate="true" />
    </conditions>
    <action type="Rewrite" url="/customHandler.cfm?path={PATH_INFO}&amp;queryString={UrlEncode:{QUERY_STRING}}" appendQueryString="false" />
</rule>

这样可以正常工作,但问题是我必须硬编码虚拟目录物理路径,它会根据环境而改变。

有没有办法可以设置条件(基于环境)变量并在重写规则中使用它或者在条件中可以使用一些替换函数?任何建议表示赞赏!

0 个答案:

没有答案