我已将一个文件夹作为虚拟目录添加到站点,需要检查虚拟目录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}&queryString={UrlEncode:{QUERY_STRING}}" appendQueryString="false" />
</rule>
这样可以正常工作,但问题是我必须硬编码虚拟目录物理路径,它会根据环境而改变。
有没有办法可以设置条件(基于环境)变量并在重写规则中使用它或者在条件中可以使用一些替换函数?任何建议表示赞赏!