URL-перенаправления в ASP.NET - PullRequest
0 голосов
/ 15 января 2010

Хорошо, странная проблема, которую я не могу понять. Надеюсь, кто-то, где можно. Я унаследовал сайт, который был разработан с очень чрезмерно спроектированной системой управления контентом. У меня возникли проблемы со встроенной функцией перенаправления.

Это на выделенном сервере Windows 2003, на котором работает ASP.NET 3.5 sp 1. Перенаправления хранятся в базе данных, и я подтвердил, что в базе данных имеется правильное перенаправление. Наконец, расширение файла .html было сопоставлено в IIS с ASP.NET ISAPI. И есть HttpHandler, созданный для перенаправления запросов .html. Документы по умолчанию на сервере, в следующем порядке:

  • default.aspx
  • index.aspx
  • default.asp
  • index.asp
  • default.html
  • index.html

для этого примера у нас есть два перенаправления, указывающие на одну и ту же страницу содержимого. /example и /example.html

при запросе /example.html он правильно находит соответствующий редирект в базе данных и делает свое дело. Буэно. При запросе /example выдает страницу 404. Это даже не желтоватая страница ошибки 404 asp.net. Это стандартный ванильный ответ IIS 404, поэтому кажется, что asp.net не перехватывает эти запросы.

Дайте мне знать, если потребуется какая-либо другая информация, и я постараюсь предоставить то, что могу. Заранее спасибо за все отличные рекомендации, которые, я уверен, придут от сообщества.

Ответы [ 3 ]

2 голосов
/ 16 января 2010

Не переписывая CMS, вы можете поместить физический файл в новый каталог "/ example". Это заставит ASP.NET перехватить запрос и, надеюсь, загрузить вашу страницу.

Если вы хотите действительно взломать его, вы можете изменить страницу IIS 404 на страницу .NET в вашем приложении, которая может обрабатывать исходный запрос и перенаправлять на страницу, которую вы действительно хотите.

2 голосов
/ 16 января 2010

Вы должны иметь возможность сопоставить расширение подстановочного знака, чтобы пройти через ASP.Net ISAPI DLL является решением.

Установка сопоставлений приложений с подстановочными знаками (IIS 6.0) также может быть полезным.

0 голосов
/ 15 января 2010

Да, это правильно, потому что / пример не указывает ни на какой файл, он указывает на каталог на веб-сервере. Убедитесь, что в вашем приложении существует Default.aspx / default.html или любой другой, по крайней мере, один из них.

Если вы используете ASP.Net MVC для REST, проверьте правильность написания ваших действий.

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