Новое приложение
- главная страница и
- страницы для добавления, обновления и удаления «запросов функций».
Исходное приложение имело много разных URL-адресов. Я хотел бы гарантировать, что пользователи всегда перенаправляются на новую «главную» страницу, независимо от того, какой «старый» URL-адрес они пробуют.
Я надеялся использовать IIS «configure» ошибка"; но это, похоже, не работает (я пробовал много вариантов).
Поэтому вместо этого я написал компонент промежуточного программного обеспечения для перенаправления на HTTP 404. Кажется, он работает (я успешно перенаправляюсь на главную страницу, независимо от URL). Но я получаю следующую ошибку:
При выполнении запроса произошло необработанное исключение. System.InvalidOperationException: заголовки ответа невозможно изменить, поскольку ответ уже начался.
Код — RedirectPageNotFound.cs:
Код: Выделить всё
public class RedirectPageNotFound
{
private readonly RequestDelegate _next;
private readonly ILogger _logger;
public RedirectPageNotFound(RequestDelegate next, ILogger logger)
{
_next = next;
_logger = logger;
}
public async Task Invoke(HttpContext context)
{
await _next(context);
if (context.Response.StatusCode == 404)
{
_logger.LogInformation($"Handling 404 error for request {context.Request.Path}");
context.Response.Redirect("/");
}
else
{
await _next(context);
}
}
}
Код: Выделить всё
Program.cs
Код: Выделить всё
app.MapRazorPages();
app.MapControllers();
app.UseMiddleware();
Q2. Есть ли «лучший» способ перенаправления «плохие URL-адреса» на мою «главную страницу», чтобы она вообще не выполняла перенаправление HTTP?
Подробнее здесь: https://stackoverflow.com/questions/791 ... -main-page