Я пишу универсальный метод действия для страницы 404, который берет запрошенный URL, извлекает многословные биты с помощью регулярного выражения (\w+)*
и отправляет эти биты через пробел в поисковую систему для генерации списка предлагаемых страниц.
Проблема в том, что ServerVariables["UNENCODED_URL"]
кажется здесь недоступным в методе Action. Другие серверные переменные доступны , однако.
Я мог бы использовать ServerVariables["URL"]
в сочетании с ServerVariables["QUERY_STRING"]
, оба из которых доступны. Но в некоторых ситуациях это не учитывает части URL-адреса, которые могут содержать действительную информацию о намерениях пользователя.
Например, если неправильно сформированный URL-адрес
/test/007/words/something-with-a-dot.xyz/these-words-are-neglected/?stuff-in-querystring
Тогда «URL» и «QUERY_STRING» находятся как "/test/007/words/something-with-a-dot.xyz"
и "stuff-in-querystring"
.
«URL» довольно прямо игнорирует все после того, что выглядит как расширение файла. Так что этого недостаточно.
Так что случилось с UNENCODED_URL?
И как я могу получить его эквивалент?