Sobes.tech
Назад к вопросам
Middle
4

Как реализовать перенаправление пользователей с мобильных устройств на мобильный поддомен (как у ВКонтакте)?

Компании, где спрашивали
PyrusPyrus

Ответ от нейросети

sobes.tech AI

Для перенаправления пользователей с мобильных устройств на мобильный поддомен в C# можно использовать проверку User-Agent в HTTP-запросе и делать редирект на нужный поддомен. Обычно это реализуется в middleware или в обработчике запроса.

Пример на ASP.NET Core:

public class MobileRedirectMiddleware
{
    private readonly RequestDelegate _next;

    public MobileRedirectMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task Invoke(HttpContext context)
    {
        var userAgent = context.Request.Headers["User-Agent"].ToString().ToLower();
        var host = context.Request.Host.Host;

        bool isMobile = userAgent.Contains("iphone") || userAgent.Contains("android") || userAgent.Contains("mobile");

        if (isMobile && !host.StartsWith("m."))
        {
            var newHost = "m." + host;
            var newUrl = $"{context.Request.Scheme}://{newHost}{context.Request.Path}{context.Request.QueryString}";
            context.Response.Redirect(newUrl, permanent: false);
            return;
        }

        await _next(context);
    }
}

// В Startup.cs в методе Configure:
// app.UseMiddleware<MobileRedirectMiddleware>();

Такой подход позволяет автоматически перенаправлять мобильных пользователей на поддомен m.example.com, как это сделано у ВКонтакте. Важно учитывать, что User-Agent может быть не всегда надежным, поэтому можно использовать специализированные библиотеки для определения устройств.