Проблема с символом «+» в URL в IIS 7.x - PullRequest
12 голосов
/ 05 января 2011

Мы отправляем строку в кодировке HTML в строке запроса. Он работал нормально на IIS 6 (Windows 2003). Недавно мы переместили сайт на Windows 2008 (IIS 7.x). Поскольку перемещение любой строки запроса, содержащей знак «+», т.е. «% 2b», выдает ошибку на сервере «404 - файл или каталог не найден».

Любая помощь?

С уважением.

Ответы [ 3 ]

16 голосов
/ 12 апреля 2014

Причиной возникновения этой ошибки является то, что IIS7 ввел новые правила фильтрации URL-адресов по соображениям безопасности. Поэтому знак «+» по умолчанию блокируется как часть причины безопасности в URL.

Чтобы решить эту проблему, вы должны установить allowDoubleEscaping = "true" в файлах web.config. Вот тег для этого.

<system.webServer>
<security>
  <requestFiltering allowDoubleEscaping="true">
  </requestFiltering>
</security>

8 голосов
/ 05 января 2011
0 голосов
/ 05 января 2011

Вы можете изменить + на% 20 при кодировании, чтобы обработать это программно, предполагая, что у вас есть контроль над кодом, который производит URL-адреса.

...