Правило перенаправления в IIS не применяется - PullRequest
0 голосов
/ 20 марта 2019

У меня следующая проблема:

Я хочу разрешить пользователям с точным URL-адресом перенаправлять на другой.Примечание: мой URL сразу скачивает файл.

Я хочу переслать файл в другой файл (он должен загрузить файл, на который я перенаправляю).

Мое правило:

<rule name="File" patternSyntax="ExactMatch" stopProcessing="true">
                    <match url="https://SITE.be/download/DownloadFile?id=138999" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{URL}" pattern="https://SITE.be/download/DownloadFile?id=138999" />
                        <add input="{QUERY_STRING}" pattern="https://SITE.be/download/DownloadFile?id=138999" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" />
                    </conditions>
                    <action type="Redirect" url="https://SITE.be/download/DownloadFile?id=138111" appendQueryString="false" />
                </rule>

мое правило не работает, оно не перенаправляет его, и когда я проверяю 'Проверка перенаправления URL', оно упоминает, что нет набора перенаправленияна URL.

что я делаю не так?

Редактировать:

Я пытался:

<rule name="File" stopProcessing="true">
            <match url="download/DownloadFile?id=138999" />
            <conditions logicalGrouping="MatchAny">
               <add input="{HTTP_HOST}" pattern="^site.be$" />
            </conditions>
            <action type="Redirect" url="https://site.be/download/DownloadFile?id=138111" appendQueryString="false" />
        </rule>

без улучшений (средства проверки перенаправления в Google по-прежнему не вызывают появления набора перенаправлений)

1 Ответ

0 голосов
/ 22 марта 2019

Согласно вашему коду iis rewirte, я обнаружил, что в части URL совпадения есть проблема. Эта часть может соответствовать только [download / DownloadFile], а не строке запроса. Если мы хотим проверить идентификатор строки запроса, мы должны использовать условие перезаписи URL.

Подробнее, вы можете обратиться к правилу перезаписи URL ниже.

<rule name="File" stopProcessing="true">
            <match url="download/DownloadFile" />
            <conditions logicalGrouping="MatchAll">
                        <add input="{QUERY_STRING}" pattern="id=138999" />
                         <add input="{HTTP_HOST}" pattern="^site.be$" />
            </conditions>
            <action type="Redirect" url="https://site.be/download/DownloadFile?id=138111" appendQueryString="false" />
        </rule>

Или

<rule name="File" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAll">
                        <add input="{HTTP_HOST}" pattern="sitebe" />
                        <add input="{REQUEST_URI}" pattern="download/DownloadFile\?id=138999" />
            </conditions>
            <action type="Redirect" url="https://site.be/download/DownloadFile?id=138111" appendQueryString="false" />
        </rule>
...