Справка по переписыванию URL в IIS 7.5 - странная строка запроса - PullRequest
0 голосов
/ 22 октября 2011

У меня есть входящая ссылка, в которой много мусора.Мой сайт просто загружает домашнюю страницу и игнорирует строку запроса, но я хотел бы обнаружить строку запроса и перенаправить на чистый домашний URL.

URL выглядит следующим образом:

http://www.mysite.url/?c%253E'dmjdlgsbve%253E2'lfzxpset%253E'sbol%253E2'f%253E'vsm%253Eiuuq%253B00xxx%252Fopdmjdlz%252Fdpn0'gffe%253Eopqbz'qsjdf%253E'tbq%253Ebd7g8g73cc3c7d%253Af5925f3efd2f62dcd'zbsht%253Exxx%252Fopdmjdlz%252Fdpn

Не получается создать правило, которое перехватывает эту строку запроса и позволяет перенаправить на http://www.mysite.url. Есть идеи?

1 Ответ

1 голос
/ 25 октября 2011

Это довольно легко сделать.Прежде всего вы должны убедиться, что вы находитесь на домашней странице (то есть пустой URL-адрес запроса), а затем вы проверяете непустую строку запроса в условиях.В обоих случаях вы перенаправляете обратно на один и тот же URL (= URI без строки запроса).

Like:

<rule name="Remove query string" stopProcessing="true">
    <match url="^$" />
    <conditions>
        <add input="{QUERY_STRING}" pattern="^$" negate="true" />
    </conditions>
    <action type="Redirect" url="{URL}" appendQueryString="false" />
</rule>

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

ОБНОВЛЕНИЕ: Я подозреваю, что в вашем URL происходит кодирование двойного URL.Например,% 253E, вероятно, должен быть% 3E, поскольку% 25 - это закодированный URL-адрес знака процента.И% 3E является закодированным символом URL>.Поэтому я думаю, вам повезет больше:

<rule name="Remove query string" stopProcessing="true">
    <match url="^$" />
    <conditions>
        <add input="{QUERY_STRING}" pattern="^c%3E'dmjdlgsbve%3E2'lfzxpset%3E'sbol%3E2'f%3E'vsm%3Eiuuq;00xxx/opdmjdlz/dpn0'gffe%3Eopqbz'qsjdf%3E'tbq%3Ebd7g8g73cc3c7d:f5925f3efd2f62dcd'zbsht%3Exxx/opdmjdlz/dpn$" />
    </conditions>
    <action type="Redirect" url="{URL}" appendQueryString="false" />
</rule>
...