Проверка правил перезаписи IIS для файла в виртуальном каталоге - PullRequest
0 голосов
/ 29 апреля 2018

Я добавил папку как виртуальный каталог на сайт, и мне нужно проверить путь к файлу в виртуальном каталоге, а не в запрошенном каталоге.

Если файл существует в виртуальном каталоге, необходимо переписать его в обработчик, т. Е.

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>

Это будет нормально работать, но проблема в том, что мне нужно жестко закодировать физический путь к виртуальному каталогу, и он будет меняться в зависимости от среды.

Есть ли способ, которым я могу установить условную (в зависимости от среды) переменную и использовать ее в правиле перезаписи ИЛИ можно использовать некоторую функцию замены в условиях? Любые предложения приветствуются!

...