Поиск по сайту:

Перенаправление запросов веб-сайта в зависимости от используемого браузера (Chrome, Firefox или IE)


Как и было обещано в нашей предыдущей статье (Как выполнить внутреннее перенаправление с помощью mod_rewrite), в этом посте мы объясним, как отображать настраиваемое содержимое веб-сайта с помощью запросов на перенаправление Apache mod_rewrite на основе критериев браузера пользователя.

Теоретически все современные браузеры должны интерпретировать контент одинаково. Однако некоторые реализуют новейшие функции быстрее, чем другие. Чтобы иметь полнофункциональный веб-сайт, который не ломается при просмотре в определенном браузере. К сожалению, для этого потребуется перенаправление в другой каталог или страницу.

Рекомендуется к прочтению: 5 советов по повышению производительности вашего веб-сервера Apache

Следующие правила перезаписи перенаправят запросы для tecmint.html на tecmint-chrome.html, tecmint-firefox.html или tecmint. -ie.html в зависимости от используемого браузера (Google Chrome, Mozilla Firefox или Internet Explorer).

Для этого переменная среды HTTP_USER_AGENT используется для идентификации браузера на основе строки пользовательского агента. Здесь мы представляем директиву RewriteCond, которая позволяет нам указать условие, которое должно быть выполнено для того, чтобы перенаправление имело место.

RewriteCond "%{HTTP_USER_AGENT}"  ".*Firefox.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-firefox.html" [R,L]
RewriteCond "%{HTTP_USER_AGENT}"  ".*Chrome.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-chrome.html" [R,L]
RewriteCond "%{HTTP_USER_AGENT}"  ".*Trident.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-ie.html" [R,L]

Обратите внимание, что целевая страница tecmint.html не обязательно должна существовать. Прежде всего давайте создадим tecmint-firefox.html, tecmint-chrome.html и tecmint-ie.html со следующим содержимым.

tecmint-firefox.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Firefox!</h3>
  </body>
</html>
tecmint-chrome.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Chrome!</h3>
  </body>
</html>
tecmint-ie.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Internet Explorer!</h3>
  </body>
</html>

мы увидим результат просмотра tecmint.html с помощью разных браузеров:

Как видите, запросы к tecmint.html перенаправлялись соответствующим образом в зависимости от используемого браузера.

В этой статье мы обсудили, как выполнять запросы на перенаправление на основе браузера пользователя. В заключение я настоятельно рекомендую вам взглянуть на шпаргалку mod_rewrite и добавить в закладки руководство по перенаправлению и переназначению в документации Apache для дальнейшего использования.

Как всегда, не стесняйтесь использовать форму комментариев ниже, если у вас есть какие-либо вопросы или отзывы об этой статье. Мы с нетерпением ждем вашего ответа!