Нужен обходной путь для & в URL, iis7

Я перемещаю старый сайт asp.net с Windows 2003 на Windows 2008 R2.

На некоторых страницах есть "&" в URL, и он прекрасно работает в 2003 году, но в 2008 году - "&" раньше "? дает "Плохой запрос".

Эти страницы оказывают серьезное влияние на популярность сайта, здесь начинается 7% всех посещений, поэтому важно правильно обрабатывать их, не меняя URL. Есть идеи, как обрабатывать такие URL на iis7 / asp.net 2.0?

PS: validateRequest не работает

2 ответа

Попробуйте добавить следующее в web.config:

<system.web>
    <httpRuntime requestPathInvalidCharacters="*,:,\" />

    ...
</system.web>

Обратите внимание, что я удалил & из списка недопустимых символов в пути.

Вот ссылка, которая может привести вас туда, где вы хотите быть, но если вы прочитаете подробности, я лично добавлю это в категорию "делайте это на свой страх и риск"... поверьте на слово Microsoft по крайней мере для одного из "исправления":

Важно! Если вы включите это исправление, вы увеличите поверхность атаки приложения. Вы не должны включать это исправление, если приложение не требует этого.

DWORD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET VerificationCompatibility = 1

Другие должны быть понятны в отношении риска только по именам настроек (например, AllowRestrictedCharacters, ValidateRequest=False):

Тем не менее, вы должны подумать об обновлении этих "старых" URL-адресов и сделать 301 Постоянный редирект для учета вашего SEO/ популярности...

Другие вопросы по тегам