Я добавил папку как виртуальный каталог на сайт, и мне нужно проверить путь к файлу в виртуальном каталоге, а не в запрошенном каталоге.
Если файл существует в виртуальном каталоге, необходимо переписать его в обработчик, т. Е.
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>
Это будет нормально работать, но проблема в том, что мне нужно жестко закодировать физический путь к виртуальному каталогу, и он будет меняться в зависимости от среды.
Есть ли способ, которым я могу установить условную (в зависимости от среды) переменную и использовать ее в правиле перезаписи ИЛИ можно использовать некоторую функцию замены в условиях? Любые предложения приветствуются!