Нужен обходной путь для & в 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/ популярности...