Назад | Перейти на главную страницу

Обработка запроса googlebot со знаком процента в качестве последнего символа в строке запроса

У меня периодически возникали сбои пула приложений на веб-сайте iis 6. Я определил, что запросы, вызывающие это, поступают от Googlebot, запрос выглядит следующим образом (взят из журнала httperr)

HTTP / 1.1 GET /Folder/PageName.html?iframe = true & width = 95% & height = 95%

Запрашиваемая страница изменяется, но строка запроса остается неизменной.

Я попытался добавить код в global.asax.cs, чтобы удалить эти недопустимые строки запроса, но кажется, что строка запроса вызывает Connection_Abandoned_By_AppPool перед тем, как нажать мой код.

Ясно, что мне нужно разобраться с этим раньше, но я действительно не уверен, где ??

Продолжая свое исследование, я обнаружил, что программное обеспечение Parallels Plesk 8.6, которое использует мой веб-сервер, включает фильтр ISAPI под названием urlprotect.dll, который, по сути, просто позволяет защитить паролем определенные URL-адреса на сайте.

Этот фильтр ISAPI применяется (по крайней мере, в этой версии Plesk) ко всем веб-сайтам на сервере по умолчанию, даже если вы не определяете никаких защищенных URL-адресов.

Это причина невозможности обработки неэкранированных знаков процента в URL-адресах.

Я нашел эту информацию в этом сообщении на форуме (http://forum.parallels.com/showthread.php?t=83376), что также указывает на то, что проблема с dll не была успешно разрешена.

Если вам не нужно защищать таким образом какой-либо URL-адрес, то, по моему опыту, его можно безопасно удалить с сайта (-ов) через IIS без каких-либо побочных эффектов.

Символ процента - это специальный символ в URL-адресах. Вам необходимо закодировать это. на "% 25"