MykolaPetiukh
@MykolaPetiukh
Директор кафе

Почему возникает бесконечный редирект?

Пытаюсь сделать перенаправление с урла без указания языка урл дефолтного языка.

Startup.cs
app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute("localizedRoute", "{culture:culture}/{controller}/{action}/{id?}", new { controller="Home",action="Index",culture="en-US" });
                endpoints.MapControllerRoute("default", "{**url}", new { controller = "Redirect", action = "RedirectToCulture", culture = "en-US" });
            });


RedirectController.cs
public IActionResult RedirectToCulture(string culture)
        {
            var pathAndQuery = new Uri(Request.GetDisplayUrl()).PathAndQuery;
            var redir = $"{culture}{pathAndQuery}";
            return Redirect(redir);
        }


Оно редиректит, но с одним нюансом: редиректит только те адреса, для которых прописана маршрутизация.
Если ввести адрес, который должен отдать 404 — уйдет в цикл редиректов: https://youtu.be/-QBunPcuvSc

Почему так и как сделать нормально?
  • Вопрос задан
  • 35 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы