Обнаружение браузера на стороне сервера - плохая идея, поскольку оно ненадежно и не является доказательством того, что данный браузер не может использовать ваше приложение.
Во-первых, некоторые браузеры (например, Opera) могут / будут отправлятьв другом пользовательском агенте, потому что он делает браузер более «совместимым» (другими словами, он работает на основе самой методики, которую вы планируете использовать).
Во-вторых, не потому, что это Internet Explorer, он обязательно не будет работать,Ваша попытка также исключает использование Internet Explorer 9, который имеет очень хорошие шансы на совместимость с вашим веб-приложением.
Вместо этого на стороне клиента следует убедиться, что ожидаемые функции действительно присутствуют.Вы полагаетесь на document.getElementsByClassName
?Попробуйте это:
if (document.getElementByClassName == undefined)
document.location.replace('Unsupported browser URL here');
Вы полагаетесь на <canvas>
?Попробуйте это:
if (document.getElementById('canvas-element').getContext == undefined)
document.location.replace('Unsupported browser URL here');
Вы полагаетесь на сложные правила CSS3?Имейте такое правило, чтобы скрыть сообщение, предназначенное для устаревших браузеров.
.error-message:not(.unexistant-class) {
/* this rule will be dropped by browsers that don't support the not()
selector */
display:none;
}
Короче говоря, проверьте функции вместо агента пользователя.Если у клиента есть все необходимые функции, нет причин оставлять его позади.