iis перезаписать виртуальный путь к подпапке - PullRequest
0 голосов
/ 05 мая 2020
  1. Я пытаюсь изменить путь к подпапке (виртуальному каталогу) с помощью модуля перезаписи в IIS
  2. Я хочу изменить путь URL-адреса с «www.site.com/photos/20/be2f-8ed24a0d1a9a.jpg» на «www.site.com/photos/20_new/be2f-8ed24a0d1a9a.jpg», где «/ photos» - это виртуальный каталог, а "/ 20" - его подпапка
  3. Я пишу правило:
    <rewrite>
      <rules>
        <clear/>
        <rule name="photo path rewrite" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{QUERY_STRING}" pattern="/photos/20/(.*)" />
          </conditions>
          <action type="Redirect" url="{HTTP_HOST}/photos/20_new/{C:1}" redirectType="Temporary" />
        </rule>
      </rules>
      <rewriteMaps></rewriteMaps>
    </rewrite>
Что я делаю не так? Спасибо :)

1 Ответ

0 голосов
/ 06 мая 2020

Не могли бы вы объяснить, что URL-адрес, который вы хотите перенаправить, принадлежит атрибуту sr c, или вы просто хотите получить доступ к URL-адресу напрямую?

Если доступ к URL-адресу осуществляется напрямую, вам просто нужно изменить ввод условия с {QUERY_STRING} на {REQUEST_URI}.

Если этот URL принадлежит атрибуту «sr c» в теге html img, вы можете попробовать это исходящее правило.

<rewrite>
        <outboundRules>
            <rule name="outbound rule" preCondition="IsImage">
                <match filterByTags="Img" pattern="(.*)" />
                <conditions>
                    <add input="{REQUEST_URI}" pattern="/photos/20/(.*)" />
                </conditions>
                <action type="Rewrite" value="{HTTP_HOST}/photos/20_new/{C:1}" />
            </rule>
            <preConditions>
                <preCondition name="IsImage">
                    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                </preCondition>
            </preConditions>
        </outboundRules>
    </rewrite>
...