IIS переписать виртуальную папку
Мне нужно создать правило перезаписи URL в IIS для следующего:
От:
http://hostname/virtual_path_folder/myisapi.dll?a=1&b=1
Для того, чтобы:
http://hostname/myisapi.dll?a=1&b=1
По сути, я просто хотел бы скрыть папку virtual_path, если это возможно.
2 ответа
Решение
Вы могли бы пойти с 2 следующими правилами:
<rules>
<rule name="Redirect if virtual_path_folder" stopProcessing="true">
<match url="^virtual_path_folder/(.*)$" />
<action type="Redirect" url="{R:1}" />
</rule>
<rule name="Rewrite to sub folder">
<match url="^.*$" />
<action type="Rewrite" url="virtual_path_folder/{R:0}" />
</rule>
</rules>
Первый, Redirect if virtual_path_folder
, будет перенаправлять каждый запрос, начиная с virtual_path_folder/
, Это предотвратит любой доступ к вашему контенту, используя подпапку.
Второй переписывает любой запрос (^.*$
) в подпапку: virtual_path_folder/{R:0}
Я несколько раз пытался заставить это работать - я просто не в состоянии это сделать?
Я не получаю сообщение об ошибке - но он также не удаляет ices328w10 из URL?
URL-адрес: http://chrissgaraglino.com/icws328w10/index.cfm
Вот мой файл while:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Redirect if icws328w10" stopProcessing="false">
<match url="^icws328w10/(.*)$" />
<action type="Redirect" url="{R:1}" />
</rule>
<rule name="LowerCaseRule1" stopProcessing="true">
<match url="[A-Z]" ignoreCase="false" />
<action type="Redirect" url="{ToLower:{URL}}" />
<conditions logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}" pattern="(.*?)\.css$" negate="true" />
</conditions>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>