IIS 6: как обрабатывать пробел (% 20) после .aspx - PullRequest
2 голосов
/ 21 марта 2011

Иногда мой сервер IIS 6 получает запрос, в котором после «.aspx» содержится пробел, например: http://www.foo.com/mypage.aspx%20?param=value

«% 20», следующий сразу за «.aspx», приводит к результату работы серверав «Страница 404 не найдена».

Есть ли способ настроить IIS для принятия «.aspx% 20» и обработки страницы, как если бы «% 20» не существовало?

Я посмотрел «Домашний каталог» / «Конфигурация» в свойствах сайта в IIS Manager и добавил запись для «.aspx% 20», но это не сработало.Любые другие предложения приветствуются.

Ответы [ 3 ]

2 голосов
/ 21 марта 2011

+ 1 для пользовательского HttpModule (как предложил Фредерик Хамиди). Это чистое модульное решение, которое может помочь вам переписать другие URL-адреса, если вам потребуется.

Ваш OnBeginRequest (ссылаясь на ссылку, предоставленную Фредериком) может выглядеть примерно так:

private void OnBeginRequest(object sender, EventArgs e)
{
   HttpContext context = ((HttpApplication)sender).Context;
   string url = context.Request.RawUrl;
   context.RewritePath(url.Replace(".aspx%20",".aspx"), false);
}
2 голосов
/ 21 марта 2011

Возможно, вы захотите написать модуль HTTP , чтобы удалить завершающий пробел из URL.

1 голос
/ 21 марта 2011

Переопределите страницу 404 в вашем web.config и обработайте ситуацию, описанную вами в коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...